Codage affine, algorithmes d Euclide et Bézout. 4.1 Le codage affine (début) Introduction:



Documents pareils
THEME : CLES DE CONTROLE. Division euclidienne

ÉPREUVE COMMUNE DE TIPE Partie D

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

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

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Représentation des Nombres

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

Introduction à l étude des Corps Finis

1 Recherche en table par balayage

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

FONDEMENTS DES MATHÉMATIQUES

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

Cours d arithmétique Première partie

La persistance des nombres

Le produit semi-direct

Conversion d un entier. Méthode par soustraction

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Cryptographie et fonctions à sens unique

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

Factorisation d entiers (première partie)

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

Chapitre VI - Méthodes de factorisation

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

Algorithme. Table des matières

Développement décimal d un réel

Activité 4. Tour de cartes Détection et correction des erreurs. Résumé. Liens pédagogiques. Compétences. Âge. Matériels

Les probabilités. Chapitre 18. Tester ses connaissances

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient

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

Chapitre 1 : Évolution COURS

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Module 16 : Les fonctions de recherche et de référence

Objets Combinatoires élementaires

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

Angles orientés et trigonométrie

Transmission d informations sur le réseau électrique

Compter à Babylone. L écriture des nombres

Projet Matlab : un logiciel de cryptage

Université Paris-Dauphine DUMI2E 1ère année, Applications

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur

PROBABILITÉS CONDITIONNELLES

TD n o 8 - Domain Name System (DNS)

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

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

Exercices de dénombrement

Calculateur quantique: factorisation des entiers

Représentation d un entier en base b

Probabilités sur un univers fini

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

Mathématiques financières

LES DECIMALES DE π BERNARD EGGER

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

Voyez la réponse à cette question dans ce chapitre.

Quelques tests de primalité

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

Date : Tangram en carré page

Bureau N301 (Nautile)

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Le coloriage virtuel multiple et ses applications

Partie 5 : La consommation et l investissement

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

avec des nombres entiers

Rallye Mathématiques de liaison 3 ème /2 nde et 3 ème /2 nde pro Epreuve finale Jeudi 21 mai 2015 Durée : 1h45

Sondage sur le climat. scolaire. Guide d utilisation à l attention des administratrices et des administrateurs

Options, Futures, Parité call put

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

Qu est-ce que la croissance économique? Quels sont ses moteurs?

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

Feuille TD n 1 Exercices d algorithmique éléments de correction

Correction du baccalauréat STMG Polynésie 17 juin 2014

Exercices sur le chapitre «Probabilités»

Sécurité de l'information

Programme de calcul et résolution d équation

Probabilités sur un univers fini

TP 1. Prise en main du langage Python

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

Raisonnement par récurrence Suites numériques

Oscillations libres des systèmes à deux degrés de liberté

UFR de Sciences Economiques Année TESTS PARAMÉTRIQUES

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

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

Les indices à surplus constant

315 et 495 sont dans la table de 5. 5 est un diviseur commun. Leur PGCD n est pas 1. Il ne sont pas premiers entre eux

Encryptions, compression et partitionnement des données

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

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Diviser un nombre décimal par 10 ; 100 ; 1 000

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

LES RESEAUX SOCIAUX SONT-ILS UNE MODE OU UNE REELLE INVENTION MODERNE?

Equations cartésiennes d une droite

CORRIGES DES CAS TRANSVERSAUX. Corrigés des cas : Emprunts

TECHNIQUES DE CRYPTOGRAPHIE

La fonction exponentielle

Corefris RAPPORT ANNUEL Annexe 3 : La hausse des prix de l immobilier est-elle associée à une «bulle» de crédit en France?

IV- Comment fonctionne un ordinateur?

Transcription:

Codage affine, algorithmes d Euclide et Bézout 4 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 la fonction : M 1 a M ` b pmod 26q Exercice 4.1 que l on appelle codage affine. C est bien une généralisation, car on retrouve les codages précédents 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 SageMath. Montrer que si l on choisit a 3 et b 5, alors le caractère codé L correspond au caractère C en clair. Exercice 4.2 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 O 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 O 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 O 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 a et b de cryptage affine ne doivent pas être utilisées. 39

40 CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT 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 O 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 a et b sont-elles maintenant bien choisies? 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 SageMath, 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 SageMath) : a P t1 ; 3 ; 5 ;...... u 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 1: Crypter, à la main, le message Le roi est mort à l aide d un codage affine avec a 3, b 5. message L E R O I E S T M O R T en clair message codé

CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT 41 Exercice 4.3 Crypter, à la main, le message Alea jacta est à l aide d un codage affine avec a 7, b 3. Exercice 4.4 Après avoir proposé le pseudo-code, proposer une fonction affine(phrase,a,b) permettant à l aide de SageMath de crypter une phrase avec les clés a et b. Contrôler que : affine (" CAMARCHE ",5,13) " XNVNUXWH " Exercice 4.5 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. Exercice 4.6 Sachant que les clés de cryptage sont a 9 et b 19, utiliser SageMath pour déterminer les nouvelles clés a 1 et b 1 permettant de décrypter : CQTAPLDGDZIYTZMTLNOD 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 mathématique, mais pour lesquels, nous devons définir de nouveaux outils mathématiques. 4.2 PGDC, Algorithme d Euclide Définition: Définitions équivalentes: 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 le nombre 1. 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 2: Les nombres 725 et 58 sont-ils premiers entre eux?

42 CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT Exercice 4.7 Déterminer : a) PGDC(35, 84) b) PGDC(39, 52) c) PGDC(48, 54) d) PGDC(60, 45) Exercice 4.8 Les couples de nombres suivants sont-ils premiers entre eux? a) 122 et 49 b) 352 et 33 Exercice 4.9 Calculer le PGDC de 4539 et 1958. Algorithme d Euclide: L algorithme suivant permet de calculer le PGDC(4539, 1958). 4539 2 1958 ` 623 pr 0 623q 1958 3 623 ` 89 pr 1 89q 623 7 89 ` 0 pr 2 0q 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 diviseur commun 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 peut-être (?) le justifier. Exemple 3: Déterminer le PGDC(1365, 558). Exercice 4.10 À 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

CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT 43 Exercice 4.11 Les entiers 5617 et 1515 sont-ils premiers entre eux? 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, la suite des restes r i finissant par être nulle. Le dernier reste non nul est alors le PGDC de a et b Cet algorithme peut également être présenté sous la forme d un 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 fonction reste(a,b) donnant la liste de tous les restes partiels r 0, r 1, r 2,..., 0 apparaissant dans l algorithme d Euclide appliqué sur a et b : reste (4539,1958) [623,89,0]

44 CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT Exercice 4.13 Transformer la fonction précédente afin d obtenir l écriture complète de l algorithme, c est-à-dire : euclide (4539,1958) " 4539 = 2 * 1958 + 623 " " 1958 = 3 * 623 + 89" " 623 = 7 * 89 + 0" " le PGDC vaut donc 89" Exercice 4.14 Voici le pseudo-code d une fonction mystère. Étudiez-le, programmezle sur SageMath. Que remarquez-vous? fonction mystere pa,bq : si b 0 : resultat Ð a sinon: r Ð a mod b Resultat Ð mysterepb,rq retourner Resultat 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 4: Nous avons montré que PGDC(4539, 1958) = 89. L encadré précédent affirme donc qu il existe deux entiers u et v tels que : 4539u ` 1958v 89. Contrôlons que u 3 et v 7 vérifient effectivement cette égalité : Étienne Bézout (1730 1783) Question: Mais comment obtenir ces 2 entiers u et v?

CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT 45 Exemple 5: À 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 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

46 CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT Exercice 4.16 Utiliser la fonction euclide développée précédemment 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 1 ` 43v 1 5 c) 2244u ` 780v 12 Exercice 4.17 a) Le but de cet exercice est de programmer SageMath afin de proposer un algorithme permettant de déterminer les entiers u et v vérifiant 2244u ` 780v 12 (cf. 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) : Euclide Initialisation : 2244 1 2244 ` 0 780 p1 ; 0q 780 0 2244 ` 1 780 p0 ; 1q Reste 2244 2 780 ` 684 684 2244 2 780 (1 ; 0q 2p0 ; 1q p1 ; 2q 780 1 684 ` 96 96 780 1 684 p0 ; 1q 1p1 ; 2q p 1 ; 3q 684 7 96 ` 12 12.................................. p...... ;...... q 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 PGDCp1534,180q c) Effectuer de même avec l équation : 744u ` 123v PGDCp744,123q d) Afin de contrôler vos réponses, télécharger le fichier (OpenOffice) euclidebezout.ods se trouvant sur : http://www.javmath.ch. Étudiez la programmation des cellules du tableau proposant les coefficients de Bézout, puis adaptez pour SageMath cet algorithme (à l aide d un pseudo-code?). Contrôlez que bezout (744,123) " u = -20 et v = 121 "

CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT 47 Exercice 4.18 À l aide de vos fonctions euclide et bezout développées sur SageMath, déterminer les PGDC des deux nombres proposés ainsi que les coefficients u et v de l égalité de Bézout a) 322 et 17 b) 512 et 28 c) 1321 et 314 SageMath: La fonction préprogrammée gcd de SageMath permet de calculer le PGDC de 2 nombres : gcd (1321,314) 1 4.4 Le codage affine (suite) Introduction: Exercice 4.19 Pour se remettre ce type de codage en mémoire, reparcourez le premier paragraphe de ce chapitre. 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 4.2). Question: On sait, après avoir fait un choix de a satisfaisant (par exple a 7), coder un texte grâce à une transformation affine. Peut-on alors toujours le 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 vous avez dû voir dans un cours de base qu il existe alors 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 PGDC(a, 26) = 1. Ainsi, d après Bézout, il existe a 1 et v tel que : a a 1 ` 26v 1

48 CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT ou, modulo 26 : Il existe a 1 tel que a a 1 1 pmod 26q On observe alors que a 1 est un inverse de a modulo 26. Soit M 1 une lettre codée, correspondante en clair à M. On connaît M 1, on veut retrouver M. On sait (quand on est dans le secret du codage) que : M 1 a M ` b pmod 26q b M 1 b a M pmod 26q a 1... a 1 pm 1 bq a 1 a M pmod 26q distr, inv a 1 M 1 a 1 b M pmod 26q ou encore : M a 1 M 1 ` p a 1 bq pmod 26q Ce qui montre l existence d une transformation affine de décodage, réciproque de la transformation affine de codage. On peut encore mentionner que la transformation affine de décodage est unique. Exemple 6: On considère la phrase LACLEESTDANSLABOITE que nous codons à l aide du codage affine M 1 7M ` 10 pmod 26q. Nous obtiendrons : JKYJMMGNFKXGJKREONM Pour trouver a 1 (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 1 pmod 26q 7 a 1 1 ` k 26 26 k ` 7 a 1 1 (puis en posant k u et a 1 v) 26u ` 7v 1 En utilisant l algorithme de Bézout (SageMath), on obtient : v a 1 11 15 pmod 26q On obtient b 1 grâce à la relation : b 1 a 1 b 11 10 110 6 pmod 26q Ainsi donc, la transformation affine de décodage est : M 15 M 1 ` 6 pmod 26q

CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT 49 Exercice 4.20 Sans utiliser SageMath, 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 1 et b 1. a) Montrer que a 1 19 est l inverse de a pmod 26q. b) Montrer que b 1 24 est l autre clé. c) Montrer que le codage affine de la lettre C correspond à S, puis que les clés de décryptage a 1 19 et b 1 24 retransforme bien S en C. Exercice 4.21 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 SageMath : a) Calculer a 1 puis b 1. b) Déterminer la lettre en clair correspondant à la première lettre cryptée Z. Avec SageMath : c) À l aide de votre fonction affine(phrase,a,b) de l exercice 4.4, retrouver le message original. Exercice 4.22 À l aide des différentes fonctions développées sous SageMath, décoder le message suivant sachant qu il a été codé avec les clés a 23 et b 23 : LSVZHKKLRHKKXZSEXVQXRQLI. 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.

50 CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT 4.5 Un exemple de cryptanalyse 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, à 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. Exemple 7: 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. Passons aux équivalents numériques : codé clair M Ñ 12 Ñ 4 Ñ E G Ñ 6 Ñ 18 Ñ S

CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT 51 Les paramètres de décryptage, a 1 et b 1 doivent alors vérifier les deux équations (deux comme le nombre de paramètres à déterminer) : 4 12a 1 ` b 1 pmod 26q (M Ñ E) 18 6a 1 ` b 1 pmod 26q (G Ñ 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 de systèmes d équations classiques : nous ne pouvons faire de divisions, mais nous pouvons faire des multiplications. " 4 12a1 ` b 1 pmod 26q 1 (1) 18 6a 1 ` b 1 pmod 26q 1 (2) 14 6a 1 pmod 26q Si a 1 vérifie cette équation, il existe k P Z tel que 6a 1 14 ` 26 k ou encore 3a 1 7 ` 13 k qui s écrit donc 3a 1 6 pmod 13q. Multiplions par 9 qui est l inverse de 3 modulo 13 : a 1 2 pmod 13q Donc a 1 P t2 ; 15 ; 28 ;...u. Modulo 26, cela nous donne a 1 2 pmod 26q ou a 1 15 pmod 26q. Comme de plus a 1 doit être premier avec 26 pour être admissible, cela nous donne comme seule solution possible a 1 15. De (1) ou (2), on déduit que b 1 6. On retrouve ainsi la transformation affine de décodage : affine (" YMQMGGKAMMGNNELGMYZMN ",15,6) " CEMESSAGEESTTOPSECRET " Cet exemple 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.

52 CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT Exercice 4.23 En appliquant une démarche analogue, retrouver les clés de cryptage vérifiant : clair codé E Ñ 4 Ñ 12 Ñ M S Ñ 18 Ñ 6 Ñ G Exercice 4.24 Casser cette épitaphe célèbre (à récupérer en format texte sur le site : http://www.javmath.ch) OFVVFSGBXVGPBPWXGDHQXFRMXM PDOEFSGXBXVGWRPZRPGFOOKXSMWXSD HQKXMFSSXXVZRPWFCXBRVFAXRSXVVXXSFDB BROXWFVPYPXHXOFKGPXORPVVFADRXVXBDRCKPGM RSOKXHPXKMRCXGOXSMFSGWFMDRUPXHXPWOFVVFX SBDKXWXVXOGPXHXMXVFCPXFCFSGMXOKXSMKXRSX XODRVXXGBPSZFSVOWRVGFKMPWXRGRSQXWXSIFS GZRPFOKXVFCDPKFGGXPSGWFHDPGPXMXWFT XIPSFWMXVDSOXKXOXKPGMRSXHDKGHFWE XRKXRVXVDSOXKXWRPVRKCXBRGZRFGK XFSSXXVMXGDRGBXBPMXMRPVVDSFTX 4.6 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 mot-clé 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. message C E M E S S A G E E S T S E C R E T en clair 2 4 12 4 18 18 0 6 4 4 18 19 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 "bout à bout" 2 14 3 4 2 14 3 4 2 14 3 4 2 14 3 4 2 14 message 4 18 15 8 20 6 3 10 6 18 21 23 20 18 5 21 6 7 codé E S P I U G D K G S V X U S F V G H

CHAPITRE 4. CODAGE AFFINE, ALGORITHMES D EUCLIDE ET BÉZOUT 53 Comme il y a 4 lettres dans le mot CODE, les lettres de rang 1 modulo 4 dans le texte vont subir une translation de 2 (l équivalent numérique de C), puis les lettres de rang 2 modulo 4 vont subir une translation de 14 (l équivalent numérique de O) etc... 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, S, G et I. Les régularités dans la langue ou la recherche de mots probables dans le texte peuvent permettre de deviner cette longueur... C est ce que les Anglais ont réussi à faire à plusieurs reprises durant la guerre. Il s agit dans les exercices suivants de programmer SageMath afin de crypter et/ou décrypter des messages à l aide de cette méthode. Exercice 4.25 a) Combien de fois faudra-t-il mettre bout à bout la clé BO pour coder le message : MONPREMIERMESSAGE? b) Combien de fois faudra-t-il mettre bout à bout une clé de n caractères pour coder un message de m caractères (m ą n)? c) Proposer une fonction SageMath permettant de coder un texte à l aide d une clé : vigenere (" ETVOICILEDERNIER "," MACLEF ") " QTXZMHULGOIWZIGC " Exercice 4.26 Pour finir, décrypter le message suivant sachant que la clé de cryptage était BIENVU : OMQNIKVMDCVMMMWVOYBZWPMSQBSTMUQPMPV