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