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