Le chiffre de Vigenère (diplomate français du
Transcription
Le chiffre de Vigenère (diplomate français du
Le chiffre de Vigenère (diplomate français du XVIème siècle) Exemple n°1 : On crypte le message Message J A D O R E F A I R E D E S M A T H S en clair Clef Message chiffré Table de Vigenère. Lettre en clair 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 A 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 B B C D E F G H I J K L M N O P Q R S T UVW X Y Z A C C D E F G H I J K L MN O P Q R S T U VWX Y Z A B D D E F G H I J K L M N O P Q R S T U VWX Y Z A B C E E F G H I J K L MN O P Q R S T U V WX Y Z A B C D F F G H I J K L M N O P Q R S T U V WX Y Z A B C D E G GH I J K LMN O P Q R S T U VWXY Z A B C D E F H H I J K L MN O P Q R S T U VWX Y Z A B C D E F G I I J K LMN O P Q R S T U VWX Y Z A B C D E F G H L J C l K é L U t M i N l i O s é P e Q e J K LMN O P Q R S T U V WX Y Z A B C D E F G H I t K LMNO P Q R S T U V W X Y Z A B C D E F G H I J t r LMN O P Q R S T U VWX Y Z A B C D E F G H I J K e MNO P Q R S T UVWX Y Z A B C D E F G H I J K L c N O P Q R S T U VWX Y Z A B C D E F G H I J K L M h O P Q R S T U V WX Y Z A B C D E F G H I J K L MN i f P Q R S T U VWXY Z A B C D E F GH I J K L MNO f Q R S T UVWX Y Z A B C D E F G H I J K L M N O P r é S R S T U VWX Y Z A B C D E F G H I J K L M N O P Q e S T U V WX Y Z A B C D E F G H I J K L MN O P Q R T T U VWX Y Z A B C D E F G H I J K L MN O P Q R S U U VWX Y Z A B C D E F G H I J K L MN O P Q R S T V V WX Y Z A B C D E F G H I J K L MN O P Q R S T U W WX Y Z A B C D E F G H I J K L M N O P Q R S T U V X XY Z A B C D E F G H I J K L MN O P Q R S T U VW Y Y Z A B C D E F G H I J K L M N O P Q R S T U VWX Z Z A B C D E F G H I J K L M N O P Q R S T U V WX Y R Lycée Emile Littré – MPS 2010 – N. Ténart page 1 sur 6 Exemple n°2 : On déchiffre le message codé. Message en clair Clef Message G W N L V X P chiffré A N G S S Y M L I Z S Y La grande force du chiffre de Vigenère est que la même lettre sera chiffrée de différentes manières. Par exemple le E du texte clair ci-dessus a été chiffré successivement M V L P I, ce qui rend inutilisable l'analyse des fréquences. Évidemment, plus la clé sera longue et variée et mieux le texte sera chiffré. Il faut savoir qu'il y a eu une période où des passages entiers d'œuvres littéraires étaient utilisés pour chiffrer les plus grands secrets. Les deux correspondants n'avaient plus qu'à avoir en leurs mains un exemplaire du même livre pour s'assurer de la bonne compréhension des messages. Il faudra attendre le XIXème siècle pour que Charles Babbage trouve un moyen réellement efficace pour casser ce chiffre. En savoir plus : http://fr.wikipedia.org/wiki/Chiffre_de_Vigen%C3%A8re Cryptage RSA Le système de chiffrement RSA a été inventé par trois mathématiciens : Ron Rivest, Adi Shamir et Len Adleman, en 1977 (On retrouve le sigle RSA dans les noms des inventeurs). Ce système de chiffrement est beaucoup utilisé dans le commerce électronique (paiement en ligne, consultation de compte bancaire, correspondance), mais aussi dans les cartes bleues, dans les logiciels (exemple : OpenSSH), etc. Lycée Emile Littré – MPS 2010 – N. Ténart page 2 sur 6 Principe de codage asymétrique : Alice souhaite pouvoir recevoir des messages chiffrés de n'importe qui. Elle génère alors une valeur à partir d'une fonction à sens unique et à brèche secrète à l'aide d'un algorithme de chiffrement asymétrique, par exemple RSA. Alice diffuse à tout le monde la fonction pour coder les messages (notée clé publique) mais garde secrète la fonction de décodage (notée clé privée). 1ère étape : Alice génère deux clés. La clé publique 2ème et 3ème étapes : Bob chiffre le message avec la clé (verte) qu'elle envoie à Bob et la clé privée (rouge) publique d'Alice et envoie le texte chiffré. Alice qu'elle conserve précieusement sans la divulguer à déchiffre le message grâce à sa clé privée. quiconque. Analogie du coffre-fort : Alice a choisi un coffre-fort. Elle l'envoie ouvert à Bob, et en garde la clé. Lorsque Bob veut écrire à Alice, il y dépose son message, ferme le coffre, il n'a pas besoin de la clef pour cela, et le renvoie à Alice. À sa réception, seule Alice peut ouvrir le coffre, puisqu'elle seule en possède la clé, à supposer le coffre inviolable, et que personne ne puisse retrouver la clé. Quelques éléments mathématiques pour comprendre le cryptage RSA : 1. Nombres premiers : • Les nombres entiers supérieurs ou égaux à 2 sont dits premiers s’ils ne sont divisibles que par 1 et par eux-mêmes. • On a démontré qu’il y a une infinité de nombres premiers. Mais il n’existe pas de règle connue permettant de construire un nombre premier. • Crible d’Eratosthène (Grec – IIIème siècle av. J.-C.) : table des nombres premiers inférieurs à 100. 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 • Premier or not premier ? (rayez les nombres non premiers.) 159 223 551 127 101 197 Lycée Emile Littré – MPS 2010 – N. Ténart 231 543 1777 page 3 sur 6 • 17 34 23 99 150 41 16 35 500 1 000 1 001 15 678 5 182 005 30 000 2 010 Modulo – kézako ? modulo 5 est égal à modulo 5 est égal à modulo 6 est égal à modulo 8 est égal à modulo 12 est égal à modulo 3 est égal à modulo 4 est égal à modulo 17 est égal à modulo 65 est égal à modulo 2 est égal à modulo 2 est égal à modulo 15 est égal à modulo 9 est égal à modulo 21 est égal à modulo 13 est égal à 2 4 5 car car car car car car car car car car car car car car car 17 = 3×5 + 2 34 = 6×5 + 4 23 = 3×6 + 5 On note : On note : On note : On note : On note : On note : On note : On note : On note : On note : On note : On note : On note : On note : On note : 17 ≡ 2 [5] 34 ≡ 4 [5] 23 ≡ 5 [6] 2. Un exemple simple pour comprendre : • Transformons un message en suite de nombres : Message V I V E L E S M A T H S en clair Message 0 0 0 0 chiffré n°1 Il suffit de prendre le rang de chaque lettre dans l'alphabet et d'utiliser un double zéro pour l'espace. On décide pour compliquer un peu plus, de regrouper les chiffres par paquets de trois. Message chiffré 0 0 0 0 n°1bis (Simplement recopier la série de chiffres ci-dessus et compléter avec des zéros.) • Codons le message : Message chiffré n°2 On utilisera la clé publique (899 ; 13). C'est-à-dire Crypté ≡ Message13 [899]. • Décryptage avec la clé privée (899 ; 517) : 7 5 4 3 8 1 2 1 6 0 0 1 2 8 1 5 7 7 6 1 4 5 0 8 2 8 1 8 7 9 4 5 7 1 0 3 4 5 7 3 3 0 0 0 0 6 2 9 2 1 7 6 5 4 2 2 3 7 5 9 4 1 7 N.B. Le message est en ligne. Quelques bugs à cause de la petitesse des nombres utilisés pour les clés... Lycée Emile Littré – MPS 2010 – N. Ténart page 4 sur 6 Principe de codage appliqué sur un exemple : • On choisit deux nombres premiers, par exemple, p = 29 et q = 31 • On calcule leur produit n appelé « module de chiffrement » : n = 29 × 31 = 899 • On calcule l’ « indicatrice d’Euler », noté φ = (p – 1)(q – 1) = 28 × 30 = 840 • On choisit un nombre e assez grand qui est premier avec φ. Prenons e = 13. On a bien PGCD(840 ; 13) = 1. A vérifier sur votre cahier. • Soit d tel que e × d ≡ 1 [φ]. o On doit avoir, dans notre exemple : 13 × d ≡ 1 [840]. o On peut prendre, par exemple, d = 517 car 13 × 517 ≡ 6721 ≡ 1 [840] car 6721 = 8 × 840 + 1 • La clé publique est constituée du couple de nombres (n ; e) c’est-à-dire (899 ; 13) • La clé privée est constituée du couple de nombres (n ; d) c’est-à-dire (899 ; 517) • La grande « Magie » du système de cryptage RSA vient du fait que : o Bob utilise la clé publique pour crypter le message M en code C avec : C ≡ M13 [899] N’importe qui peut envoyer un code en utilisant la clé publique, MAIS… o … seule Alice peut décoder le code C car elle seule possède la clé privée. Pour retrouver le message M, elle doit calculer : M ≡ C517 [899] o Exemple numérique : Le nombre 123 est codé en 12313 [899] qui est égal à 402. Le nombre 402 est décodé en 402517 [899] qui est bien égal à 123. o Si l'on ne connaît pas d = 517, on ne peut pas décrypter le message crypté C et connaître le message M. Pour connaître d, on doit connaître (p-1)*(q-1) = 840 pour trouver d à partir de l'équation : e*d ≡ 1 [(p-1)*(q-1)]. Or, pour avoir (p-1)*(q-1), on doit en premier lieu être capable de factoriser le grand nombre n = 899 en p et q, tous deux premiers. A partir du moment où tous les nombres sont de très grands nombres (100 chiffres au moins), nous pouvons dire qu'il est impossible en pratique qu'un tiers obtienne d, et puisse donc décrypter le message crypté. • Vos calculatrices bloquent sur de tels calculs par les méthodes que vous connaissez. Heureusement, les mathématiques permettent de simplifier énormément les calculs. (pour en savoir plus voir : http://mathadora.free.fr/curiosites/dossier_cryptographie.html ). Lycée Emile Littré – MPS 2010 – N. Ténart page 5 sur 6 • Voici un programme qui permet de trouver 402 en indiquant 12313 [899]. Commentaires Texas Instrument 83 Casio Graph 35 Initiation du programme PRGM puis NEW Menu PRGM puis Create New Puis NEW PROGRAM Nom Programme Name=RSA [RSA ] Message d’invite pour annoncer PROGRAM :RSA = = = = =RSA ====== les variables utilisées : Lbl A Lbl A ┘ : Disp "R = P^J [N] " "R = P^J [N] " ┘ La machine demande les 3 nombres P, J et N. Initialisation de R à 1 Boucle répétitive jusqu’à ce que J=1 Test Si J est pair Calculs Sinon (Si J impair) Calculs Fin du test Fin de la Boucle Affichage du résultat : Input "P=",P : Input "J=",J : Input "N=",N : 1R : Repeat J=1 : If J/2 = int(J/2) : Then : J/2J : P² - N*int(P²/N) P : Else : (J-1)/2J : R*P - N*int(R*P/N ) R : P² - N*int(P²/N) P : End : End : R*P – N*int(R*P/N ) R : Disp "R = ",R : Pause : Goto A Lycée Emile Littré – MPS 2010 – N. Ténart "P=" ?P ┘ "J=" ?J ┘ "N=" ?N ┘ 1R ┘ While J≠1 ┘ If J ÷ 2 = Intg (J ÷ 2) ┘ Then ┘ J ÷ 2J ┘ P² - N×Intg (P² ÷ N)P ┘ Else ┘ (J-1) ÷ 2J ┘ R×P-N×Intg (R×P ÷ N) R ┘ P² - N×Intg (P² ÷ N)P ┘ IfEnd ┘ WhileEnd ┘ R×P – N×Intg (R×P ÷ N) R ┘ "R = ":R ◄ ┘ Goto A ┘ page 6 sur 6