Chapitre 4: Codage affine, algorithmes d'euclide et Bézout

Documents pareils
108y= 1 où x et y sont des entiers

Travail d intérêt personnel encadré : La cryptographie

Chapitre 1 : Évolution COURS

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

THEME : CLES DE CONTROLE. Division euclidienne

Exercices - Polynômes : corrigé. Opérations sur les polynômes

FONDEMENTS DES MATHÉMATIQUES

Date : Tangram en carré page

Représentation des Nombres

Calculateur quantique: factorisation des entiers

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

6. Les différents types de démonstrations

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels.

Conversion d un entier. Méthode par soustraction

Cours d arithmétique Première partie

1 Définition et premières propriétés des congruences

Sécurité de l'information

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

La persistance des nombres

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

Angles orientés et trigonométrie

Raisonnement par récurrence Suites numériques

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

ÉPREUVE COMMUNE DE TIPE Partie D

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Exercices Corrigés Premières notions sur les espaces vectoriels

LE PROBLEME DU PLUS COURT CHEMIN

Peut-on tout programmer?

Cryptographie et fonctions à sens unique

Exercices de dénombrement

avec des nombres entiers

Introduction à l étude des Corps Finis

Des codes secrets dans la carte bleue. François Dubois 1

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

CHAPITRE VIII : Les circuits avec résistances ohmiques

OLYMPIADES ACADÉMIQUES DE MATHÉMATIQUES

Fonctions de plusieurs variables

Les indices à surplus constant

0x700. Cryptologie Pearson France Techniques de hacking, 2e éd. Jon Erickson

Programmation linéaire

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Algorithmes récursifs

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Utilisez Toucan portable pour vos sauvegardes

Développement décimal d un réel

Google fait alors son travail et vous propose une liste de plusieurs milliers de sites susceptibles de faire votre bonheur de consommateur.

Fonctions homographiques

INF 4420: Sécurité Informatique Cryptographie II

François Émond psychologue 2003 Centre François-Michelle. Liste des 24 catégories de connaissances et compétences à développer

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES

Logique. Plan du chapitre

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

Les différents types de données et leurs opérations de base

Représentation d un entier en base b

Dossier Logique câblée pneumatique

MPI Activité.10 : Logique binaire Portes logiques

Compter à Babylone. L écriture des nombres

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Géométrie dans l espace Produit scalaire et équations

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Mathématiques Algèbre et géométrie

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

La fonction exponentielle

Chapitre VI - Méthodes de factorisation

1 Recherche en table par balayage

Codage d information. Codage d information : -Définition-

Résolution d équations non linéaires

Chapitre 1 Régime transitoire dans les systèmes physiques

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Chapitre 2. Eléments pour comprendre un énoncé

Théorie et codage de l information

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Plan. 5 Actualisation. 7 Investissement. 2 Calcul du taux d intérêt 3 Taux équivalent 4 Placement à versements fixes.

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

Bases de données documentaires et distribuées Cours NFE04

Cours Informatique Master STEP

Carl-Louis-Ferdinand von Lindemann ( )

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

Comparaison de fonctions Développements limités. Chapitre 10

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Probabilités sur un univers fini

Correction de l examen de la première session

Continuité et dérivabilité d une fonction

CORRECTION EXERCICES ALGORITHME 1

PROBLEME(12) Première partie : Peinture des murs et du plafond.

Le produit semi-direct

Chapitre 3. Les distributions à deux variables

Taux d évolution moyen.

Transcription:

CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT 37 Chapitre 4: Codage affine, algorithmes d'euclide et Bézout 4.1 Le codage affine (début) Introduction : On peut généraliser le codage vu dans le chapitre précédent en considérant des transformations du type : M a M + b (mod 26) que l'on appelle transformations affines pour des raisons évidentes. C'est bien une généralisation, car on retrouve les transformations précédentes avec a = 1. En particulier, si l on choisit a = 1 et b = 3, on retrouve le codage de César. Comme l'on travaille "modulo 26", on peut se contenter de choisir les entiers a et b compris entre 0 et 25. Peut-on choisir n'importe quelles valeurs pour les clés de cryptage a et b? Si non, quelles conditions doit-on leur imposer? Avant de pouvoir répondre à cette question mathématiquement, commençons par quelques recherches à la main puis à l aide de MuPAD. Exercice 4.1 : Exercice 4.2 : Montrer que si l on choisit a = 3 et b = 5, alors le caractère codé "L" correspond au caractère "C" en clair. Le but de cet exercice est d observer l influence du choix des clés a et b dans le codage d un caractère. Avec a = 1, b = 0, nous obtenons le tableau de conversion : Alphabet A B C D E F G H I J K L M N 0 P Q R S T U V W X Y Z en clair 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Alphabet 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 codé A B C D E F G H I J K L M N 0 P Q R S T U V W X Y Z On a vu mieux comme cryptage Avec a = 2, b = 0, nous obtenons le tableau de conversion : Alphabet A B C D E F G H I J K L M N 0 P Q R S T U V W X Y Z en clair 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Alphabet 0 2 4 6 8 10 12 14 16 18 20 22 24 0 2 4 6 8 10 12 14 16 18 20 22 24 codé A C E G I K M O Q S U W Y A C E G I K M O Q S U W Y a) Expliquer pourquoi ces clés de cryptage affine ne doivent pas être utilisées. Avec a = 3, b = 0, nous obtenons le tableau de conversion : Alphabet A B C D E F G H I J K L M N 0 P Q R S T U V W X Y Z en clair 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Alphabet 0 3 6 9 12 15 18 21 24 1 4 7 10 13 16 19 22 25 2 5 8 11 14 17 20 23 codé A D G J M P S V Y B E H K N Q T W Z C F I L O R U X b) En quoi ces deux clés sont-elles bien choisies?

38 CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT Exercice 4.2 (suite) : Le but de cet exercice est d observer l influence du choix des clés a et b dans le codage d un caractère. Avec a = 4, b = 1, concentrons-nous sur les 2 lignes du milieu du tableau de conversion : en clair 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 codé 1 5 9 13 17 21 25 3 7 11 15 19 23 1 5 9 13 17 21 25 3 7 11 15 19 23 c) Qu en est-il du choix de cette clé? d) À l aide de MuPAD, compléter le tableau suivant avec a = 10 et b = 2. en clair 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 codé 2 12 22 e) Voici le début de la liste des valeurs de a permettant d avoir une clé bijective. Complétez-la (à l aide de MuPAD) a {1 ; 3 ; 5 ; } Que pouvez-vous dire au sujet de ces nombres? f) Expliquez en quoi le choix de la clé b n influence pas la bijectivité du cryptage. g) Montrer qu il y a au total 311 clés utilisables assurant un bon codage bijectivif. Exemple : Crypter, à la main, le message "Le roi est mort" à l aide de la transformation affine avec a = 3, b = 5. Alphabet L E R O I E S T M O R T en clair Alphabet codé

CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT 39 Exercice 4.3 : Exercice 4.4 : Crypter, à la main, le message "Alea jacta est" à l aide de la transformation affine avec a = 7, b = 3. Après avoir proposé le pseudo-code, proposer une procédure affine(phrase,a,b) permettant à l aide de MuPAD de crypter une phrase avec les clés a et b. Contrôler que : fournit bien affine("camarche",5,13) "XNVNUXWH" Exercice 4.5 : Exercice 4.6 : a) Crypter la phrase "C est un trou de verdure où chante une rivière" avec les clés de cryptage a = 7 et b = 19. b) Montrer que les clés a = 15 et b = 1 permettent de décrypter la phrase obtenue en a) afin de retrouver en clair la phrase d'arthur Rimbaud. Sachant que les clés de cryptage sont a = 9 et b = 19, utiliser MuPAD pour déterminer les nouvelles clés a et b permettant de décrypter : "CQTAPLDGDZIYTZMTLNOD" 4.2 PGDC, Algorithme d Euclide Dans l exercice précédent, on constate que même en connaissant la clé de cryptage, ce n est pas très pratique de faire une attaque exhaustive. On pourrait néanmoins, à l aide d une bonne programmation limiter notre recherche aux 311 possibilités. Les paragraphes suivants nous fourniront une démarche moins informatique, mais pour lesquels, nous devons définir de nouveaux outils mathématiques. Définition : On dit que deux nombres entiers relatifs non nuls a et b sont premiers entre eux lorsqu ils n admettent pas de diviseur commun autre que 1. Définitions équivalentes : On dit que deux nombres entiers relatifs non nuls a et b sont premiers entre eux lorsque leur PGDC est égal à 1. On dit que deux nombres entiers relatifs non nuls a et b sont premiers entre eux lorsque la fraction a est irréductible. b Exemple : Les nombres 725 et 58 sont-ils premiers entre eux?

40 CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT Exercice 4.7 : Exercice 4.8 : Exercice 4.9 : Déterminer : a) PGDC(35, 84) b) PGDC(39, 52) c) PGDC(48, 54) d) PGDC(60, 45) Les couples de nombres suivants sont-ils premiers entre eux? a) 122 et 49 b) 352 et 33 Calculer le PGDC de 4539 et 1958. L algorithme d Euclide : L algorithme suivant permet de calculer le PGDC(4539, 1958). 4539 = 2 1958 + 623 (r 0 = 623) 1958 = 3 623 + 89 (r 1 = 89) 623 = 7 89 + 0 (r 2 = 0) Le dernier reste non nul étant 89, alors PGDC(4539, 1958) = 89. Une des plus anciennes versions connues des Éléments. Cet algorithme, permettant donc de déterminer le plus grand commun diviseur de deux entiers dont on ne connaît pas la factorisation, a déjà été décrit dans le livre VII des Éléments d'euclide vers 300 av. J.-C Appliquons plusieurs fois cet algorithme avant de le justifier. Exemple : Déterminer le PGDC(1365, 558) Exercice 4.10 : Exercice 4.11 : À l aide de l algorithme d Euclide, déterminer le PGDC des couples de nombres : a) 777 et 441 b) 2004 et 9185 c) 1600 et 259 Les entiers 5617 et 1515 sont-ils premiers entre eux?

CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT 41 L algorithme d Euclide généralisé : Soit a et b deux entiers naturels non nuls. La suite des divisions euclidiennes : de a par b a = q 0 b + r 0 de b par r 0 (si r 0 0) b = q 1 r 0 + r 1 de r 0 par r 1 (si r 1 0) r 0 = q 2 r 1 + r 2 de r n 1 par r n (si r n 0) r n 1 = q n + 1 r n + r n + 1 finit par s arrêter, un des restes r i étant nul. Le dernier reste non nul est alors le PGDC de a et b. Cet algorithme peut également être présenté sous sa forme organigramme : a et b deux entiers naturels non nul et a > b a prend la valeur de b b prend la valeur de r Calculer le reste r de la division de a par b NON r = 0 OUI PGDC(a, b) = b Exercice 4.12 : Après avoir proposé le pseudo-code, programmer une procédure reste(a,b) donnant tous les restes partiels r 0, r 1, r 2,, 0 apparaissant dans l algorithme d Euclide appliqué sur a et b : devra fournir la liste reste(4539, 1958) [623, 89, 0] Exercice 4.13 : Transformer la procédure précédente afin d obtenir l écriture complète de l algorithme, c est-à-dire : devra fournir : euclide(4539, 1958) "4539 = 2 * 1958 + 623" "1958 = 3 * 623 + 89" "623 = 7 * 89 + 0" "le PGDC vaut donc 89"

42 CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT Exercice 4.14 : Voici le pseudo-code d une procédure mystère. Étudiez-le, programmez-le sur MuPAD. Que remarquez-vous? 4.3 L égalité de Bézout (ou identité de Bézout) L égalité de Bézout : Soit a et b deux entiers relatifs non nuls et D leur PGDC. Il existe deux entiers relatifs u et v tel que au + bv = D. Exemple : Nous avons montré que PGDC(4539, 1958) = 89. L encadré précédent affirme donc qu il existe donc deux entiers u et v tels que : 4539u + 1958v = 89. Je vous laisse contrôler que u = -3 et v = 7 vérifient bien cette condition. Étienne Bézout (1730 1783) Question : Mais comment obtenir ces 2 entiers u et v? Exemple : À l aide de l algorithme d Euclide, montrer que PGDC(62, 43) = 1 puis en déduire les 2 valeurs entières u et v vérifiant : 62u + 43v = 1

CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT 43 Exercice 4.15 : a) En utilisant l algorithme d Euclide, démontrer que 383 et 127 sont premiers entre eux, puis déterminer des entiers relatifs u et v tels que 383u + 127v = 1 b) Qu en est-il des valeurs u = 64 et v = -193 et u = -317 et v = 956 c) Qu en déduisez-vous? Théorème de Bézout : Soit a et b deux entiers relatifs non nuls. a et b sont premiers entre eux il existe deux entiers relatifs u et v tels que au + bv = 1 Exercice 4.16 : Utiliser la procédure euclide développée à l exercice 4.13 afin de guider le calcul "à la main" des entiers relatifs u et v vérifiant : a) 73u + 17v = 1 b) 62u + 43v = 1. En déduire une solution de 62u' + 43v' = 5 c) 2244u + 780v = 12

44 CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT Exercice 4.17 : a) Le but de cet exercice est de programmer MuPAD afin de proposer un algorithme permettant de déterminer les entiers u et v vérifiant 2244u + 780v = 12 (exercice précédent). Commençons par étudier ceci à la main. L idée générale est, après avoir initialisé le processus, d exprimer à chaque étape le reste des divisions euclidiennes comme combinaison linéaire des 2 nombres de départ (ici 2244 et 780) : Initialisation: 2244 = 1 2244 + 0 780 (1 ; 0) 780 = 0 2244 + 1 780 (0 ; 1) Euclide Reste 2244 = 2 780 + 684 684 = 2244 2 780 (1 ; 0) 2(0 ; 1) (1 ; -2) 780 = 1 684 + 96 96 = 780 1 684 (0 ; 1) 1(1 ; -2) (-1 ; 3) 684 = 7 96 + 12 12 = (..... ;..... ) 96 = Compléter le tableau ci-dessus. Le reste nous intéressant, étant le dernier non nul, montrer que vous obtenez u = 8 et v = -23. b) Effectuer de même avec l équation: 1534u + 180v = PGDC(1534,180) c) Effectuer de même avec l équation: 744u + 123v = PGDC(744,123) d) Afin de contrôler vos réponses, télécharger le fichier (OpenOffice) euclidebezout.ods se trouvant sur www.javmath.c.la. Étudiez la programmation des cellules du tableau proposant les coefficients de Bézout, puis adaptez pour MuPAD cet algorithme (à l aide d un pseudo-code?). Contrôlez que bezout(744,123) fournit "u = -20 et v = 121" Exercice 4.18 : À l'aide de vos procédures euclide et bezout développées sur MuPAD, déterminez les PGDC des deux nombres proposés ainsi que les coefficients u et v de Bézout. a) 322 et 17 b) 512 et 28 c) 1321 et 314 MuPAD : La fonction préprogrammée gcd de MuPAD permet de calculer le pgcd de 2 nombres : gcd(24,42) fournit 6

CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT 45 4.4 Le codage affine (suite) Introduction : Pour se remettre ce type de codage en mémoire, relisez le premier paragraphe de ce chapitre. Exercice 4.19 : Montrer que le choix de la clé a = 13 induit que toutes les lettres ayant un équivalent numérique pair seront codées de la même façon. On rappelle qu'un tel choix de clé ne convient pas, car on doit exiger qu'à deux lettres différentes au départ correspondent deux lettres codées différentes. Qu'est-ce que cette condition implique pour les valeurs possibles de a? Théorème : La condition nécessaire et suffisante pour satisfaire à cette exigence est que a soit premier avec 26 (revoyez l'exercice 2). Question : On sait, après avoir fait un choix de a satisfaisant (par exple a = 7), coder un texte en clair grâce à une transformation affine. Peut-on décoder? Oui, bien sûr! On est assuré de pouvoir décoder, car la transformation affine assure une correspondance terme à terme entre toutes les lettres de l'alphabet, c'est une bijection et on sait alors qu'il existe une transformation réciproque. Cependant, on peut se demander si la recherche des clés de décodage peut se faire via l'utilisation d'une opération arithmétique modulo 26. La réponse est oui; on le montre en utilisant Bézout: a est premier avec 26, donc, d'après Bézout, il existe a' et v tel que: ou, modulo 26 : a a' + 26v = 1 Il existe a' tel que a a' 1(mod 26) On dit alors que a' est un inverse de a modulo 26. Soit M une lettre codée, correspondant en clair à M. On connaît M, on veut retrouver M. On sait (quand on est dans le secret du codage) que: M a M + b (mod 26) -b M b a M (mod 26) a' a' (M b) M (mod 26) ou encore : M a' M + (-a' b) (mod 26) Ce qui montre l'existence d'une transformation affine de décodage, réciproque de la transformation affine de codage. On pourrait encore montrer que la transformation affine de décodage est unique.

46 CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT Exemple : On considère la phrase "LACLEESTDANSLABOITE" que nous codons à l aide de la transformation affine M = 7M + 10 (mod 26). Nous obtiendrons : "JKYJMMGNFKXGJKREONM" Pour trouver a' (l inverse de a mod 26), une des deux clés du décodage, on va utiliser l algorithme de Bézout : 7 a' 1 (mod 26) 7 a' = 1 + k 26 7 a' 26 k = 1 (puis en posant a' = v et -k = u) 26u + 7v = 1 En utilisant l algorithme de Bézout (MuPAD), on obtient : v = a' = -11 15 (mod 26) On obtient b' grâce à la relation : b' = -a' b = 11 10 = 110 6 (mod 26) Ainsi donc, la clé de décodage est : M 15 M + 6 (mod 26) Exercice 4.20 : Exercice 4.21 : Sans utiliser MuPAD, on considère les clés de cryptage affine: a = 11 et b = 22. On s'intéresse alors aux clés de décryptage a' et b'. a) Montrer que a' = 19 est l'inverse de a mod 26. b) Montrer que b' = 24 est l'autre clé. c) Montrer que le cryptage affine de la lettre "C" correspond à "S", puis que les clés de décryptage a' = 19 et b' = 24 retransforme bien "S" en "C". On sait que Roméo a envoyé à Juliette le message crypté suivant: "ZXTHAWBNJQBDQIEZMBJOHADRDQIIZB" habituellement, il utilise toujours les mêmes clés: a = 19 et b = 3 Sans utiliser MuPAD: a) Calculer a' puis b'. b) Déterminer la lettre en clair correspondant à la première lettre cryptée Z. Avec MuPAD: c) À l'aide de votre procédure affine(phrase,a,b) de l'exercice 4.4, retrouver le message original. Exercice 4.22 : À l'aide des différentes procédures développées sous MuPAD, décoder le message suivant sachant qu'il a été codé avec les clés a = 23 et b = 23: "LSVZHKKLRHKKXZSEXVQXRQLI"

CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT 47 4.5 Un exemple de cryptanalyse Nous allons, dans le paragraphe suivant, nous servir de ce mode de chiffrement pour voir comment pouvaient procéder ceux qui, sans connaître les clés de codage et de décodage, tentaient de décrypter les textes codés, ceux que la littérature moderne désigne par le terme de "cryptanalystes". La cryptanalyse : Elle désigne l'ensemble des procédés pouvant être mis en œuvre pour percer à jour un texte codé, sans connaître, a priori, la ou les clés de codage et de décodage. Plaçons-nous dans le cas où le cryptanalyste sait, cependant, que le mode de codage est une transformation affine du genre de celles vues dans les paragraphes précédents. Il lui reste à découvrir les clés a et b ayant servis à faire la transformation. Il pourra alors, sans difficulté, procéder au décodage. On l'a vu, il y a 311 transformations affines possibles : il est toujours possible "théoriquement" d'envisager chacune de ces transformations et d'examiner, avec le texte à décoder ce que chacune d'entre elles produit comme texte supposé en clair. On le devine, cela va être bien fastidieux! C'est encore un principe retenu aujourd'hui; la recherche d'une clé de décodage est toujours réalisable théoriquement, mais les "codeurs" choisissent des systèmes de code tels que la découverte de la clé demande plusieurs années de calculs à des ordinateurs puissants. Un premier exemple : Supposons que nous ayons à rendre clair le message suivant: "YMQMGGKAMMGNNELGMYZMN" En sachant qu'il a été codé au moyen d'une transformation affine. À ce stade, le cryptanalyste dispose d'une arme redoutable qui peut lui éviter bien des heures de labeur fastidieux : les lettres de l'alphabet n'apparaissent pas avec la même fréquence dans une langue donnée! Certaines sont rares, d'autres plus fréquentes. C'est ainsi qu'en français, la lettre la plus fréquente est le E suivi du S puis du A. Avec un peu de chance, cet ordre "fréquentiel" va être suivi, à quelque chose près, par les lettres du texte à décoder : ceci sera d'autant plus vrai que le texte sera long et, aussi, d'autant plus que le texte à décoder appartiendra à une famille analogue aux textes ayant servi à établir la table des fréquences. Ici, dans le court message que nous avons à décrypter, la lettre la plus fréquente est le M qui apparaît six fois, suivi du G qui apparaît quatre fois. Faisons alors l'hypothèse que le M correspond au E et le G au S.

48 CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT Passons aux équivalents numériques: codé M 12 G 6 clair 4 E 18 S Les paramètres de décryptage, a' et b' doivent alors vérifier les deux équations (deux comme le nombre de paramètres à déterminer) : 4 12 a' + b' (mod 26) (équation 1 traduisant la transformation du M en E) 18 6 a' + b' (mod 26) (équation 2 traduisant la transformation du G en S) Nous sommes donc ramenés à résoudre un système de 2 équations à 2 inconnues modulo 26. Ces équations sont souvent désignées par le terme de Diophantiennes (du nom du mathématicien grec Diophante vers 350 qui a beaucoup travaillé à la résolution de ce genre d'équations). Les règles élémentaires de calcul sur des congruences de même module nous permettent d'opérer quasiment comme pour la résolution d'équations classiques : nous ne pouvons faire de divisions, mais nous pouvons faire des multiplications équivalentes à des divisions. 4 12a'+ b' (mod 26) 18 6a' + b' (mod 26) -14 6a' (mod 26) 1 1 (1) (2) Si a' vérifie cette équation, il existe k 6a' = -14 + 26 k tel que ou encore 3a' = -7 + 13 k qui s écrit donc 3a' 6 (mod 13). Multiplions par 9 qui est l'inverse de 3 modulo 13: Donc a' {2 ; 15 ; 28 ; } a' 2 (mod 13) Modulo 26, cela nous donne a' 2 (mod 26) ou a' 15 (mod 26). Comme de plus a' doit être premier avec 26 pour être admissible, cela nous donne comme seule solution possible a' = 15. De (1) ou (2), on déduit que b' = 6. On retrouve ainsi la transformation affine de décodage: affine("ymqmggkammgnnelgmyzmn ",15,6) "CEMESSAGEESTTOPSECRET" L'exemple précédent montre qu'une analyse statistique des fréquences de lettres permet facilement de briser un cryptogramme quand on sait que celui-ci est le fruit d'une transformation affine monoalphabétique.

CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT 49 Exercice 4.23 : Exercice 4.24 : En appliquant une démarche analogue, retrouver les clés de cryptage vérifiant: clair E 4 S 18 codé 12 M 6 G "Casser" cette épitaphe célèbre (à récupérer en format texte sur www.javmath.c.la): OFVVFSGBXVGPBPWXGDHQXFRMXMPDOEFSGX BXVGWRPZRPGFOOKXSMWXSDHQKXMFSSXXVZRPWFCXBR VFAXRSXVVXXSFDBBROXWFVPYPXHXOFKGPX ORPVVFADRXVXBDRCKPGMRSOKXHPXKMRCXGOXSMFSGWFMDRUPXHX PWOFVVFXSBDKXWXVXOGPXHXMXVFCPXFCFSGMXOKXSMKXRSXXODRVX XGBPSZFSVOWRVGFKMPWXRGRSQXWXSIFSGZRP FOKXVFCDPKFGGXPSGWFHDPGPXMXWFTXIPSFWMXVDSOXKX OXKPGMRSXHDKGHFWEXRKXRVX VDSOXKXWRPVRKCXBRGZRFGKXFSSXXV MXGDRGBXBPMXMRPVVDSFTX 4.5 Un exemple de cryptage polyalphabétique Blaise de Vigenère (1523 1596) La lutte se trouve engagée entre "codeurs" et "cryptanalystes". Les premiers doivent anticiper le travail des seconds pour essayer de leur rendre la tâche malaisée, voire impossible. On peut citer, avant d'envisager des moyens plus récents, un système de codage proposé par Blaise de Vigenère qui a publié en particulier un "Traité des chiffres" (1586) qui est à la fois un manuel d'épigraphie et un véritable livre de cryptographie diplomatique. Son procédé emprunte à celui de César en le complexifiant: on opère des translations sur les lettres du texte à coder en fonction d'un motclé indiquant les translations à opérer selon le rang des lettres dans le texte. Illustrons-en le principe avec un exemple: le mot-clé est CODE. Alphabet C E M E S S A G E E S T T O P S E C R E T en clair 2 4 12 4 18 18 0 6 4 4 18 19 19 14 15 18 4 2 17 4 19 Clé C O D E C O D E C O D E C O D E C O D E C codé 2 14 3 4 2 14 3 4 2 14 3 4 2 14 3 4 2 14 3 4 2 Alphabet 4 18 15 8 20 6 3 10 6 18 21 23 21 2 18 22 6 16 20 8 21 codé E S P I U G D K G S V X V C S W G Q U I V Cela veut dire, il y a 4 lettres dans le mot code, que les lettres de rang 1 modulo 4 dans le texte vont subir une translation de 2 (car l'équivalent numérique de C est 2), puis les lettres de rang 2 modulo 4 vont subir une translation de 14 (car l'équivalent numérique de O est 14) etc...

50 CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT Le mot-clé est simple à transmettre, les modes de codage et de décodage sont simples. C'est encore ce principe de codage qui était utilisé par les Allemands pendant la Seconde Guerre mondiale et qui était automatisé avec la machine Enigma. Le cryptanalyste est en difficulté pour utiliser la fréquence des lettres, du moins tant qu'il n'a pas d'autres indications sur la longueur du mot-clé. En effet, la lettre E a été codée successivement par S, I, G, C, G et I. Il semble que d'autres régularités de la langue ou la recherche de mots probables dans un texte permettent de deviner cette longueur... c'est ce que les Anglais ont réussi à faire à plusieurs reprises. Il s agit dans les exercices suivants de programmer MuPAD afin de crypter et/ou décrypter des messages à l aide de cette méthode. Exercice 4.25 : a) En imposant d abord la clé "BO" formée de 2 lettres : vigenere1("monpremiermessage") devra fournir "NCODSSNWFFNSTGBUF" b) En imposant ensuite la clé "BABAR" : vigenere2("mondeuxiememessage") devra fournir "NOODVVXJEDFMFSJBGF" c) Permettant à l utilisateur de préciser le message à coder et la clé : vigenere3("etvoiciledernier","maclef") devra fournir "QTXZMHULGOIWZIGC" Exercice 4.26 : Pour finir, décrypter le message suivant sachant que la clé de cryptage était "BIENVU": "OMQNIKVMDCVMMMWVOYBZWPMSQBSTMUQPMPV"

CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT 51

52 CODAGE AFFINE, ALGORITHMES D'EUCLIDE ET BEZOUT