Congrès Dédra-MATH-isons Modulus VS Cryptographix L’arithmétique modulaire au service du chiffrement affine Congrès Dédra-MATH-isons
Les Applications de la cryptographie Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Les Applications de la cryptographie À l’ « Époque » : Messages militaires & Diplomatiques De nos jours : Transactions bancaires E-commerce
Le Vocabulaire du Cryptologue Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Le Vocabulaire du Cryptologue Cryptanalyste Chiffrement Déchiffrement + = + Cryptogramme Texte clair Destinataire Clé Expéditeur
Et les Mathématiques là dedans ? Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Et les Mathématiques là dedans ? AD 1 4 BE 2 5 … 25 28 +3 +3 +3 Problème : il n’y a que 26 attaques possibles (27 si on compte les blancs) Décalage de 3 lettres 2 A B C D … X Y Z 1 2 3 4 … 24 25 26
Le plan que nous allons suivre : Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Le plan que nous allons suivre : 1. Notions élémentaires de congruence arithmétique 2. Chiffrement par substitution monoalphabétique 3. Chiffrement par substitution polyalphabétique
Notions élémentaires de congruence arithmétique Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Notions élémentaires de congruence arithmétique
Soit m 0, a, b a-b est divisible par m. Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique a congru à b modulo m Soit m 0, a, b a-b est divisible par m. 4-9=-5 -5-3=-8
Résidu a , ! b : 47=3.15+2 puisque 47-2=45 Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Résidu a , ! b : ab(modm) 0b<m b = reste de la division de a par m b est le résidu b=a(modm) 47=3.15+2 puisque 47-2=45
Travaillons en mod3 3 Un nouvel ensemble -4 1 2 -3 7 3 43 8 39 -2 Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Un nouvel ensemble Travaillons en mod3 3 -4 1 2 -3 7 3 43 8 39 -2 53
Classe de résidus Dans 3=0,1,2: 2 + 1 =2+1=3= 0 2 . 2 = 2.2=4=1 Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Classe de résidus Dans 3=0,1,2: 2 + 1 =2+1=3= 0 2 . 2 = 2.2=4=1
Inversibilité d’un élément dans Zm Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Inversibilité d’un élément dans Zm x est inversible dans Zm ↨ x et m sont premiers entre eux. PGCD(x,m)= 1 ax+bm=1 Dans 6 5 -1 = 5 Car 5 . 5 = 1 2 -1 n’existe pas ! Car PGCD(2,6)=2
Quel est l’inverse de 31 dans 98 ? Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Quel est l’inverse de 31 dans 98 ? 31 et 98 sont-ils premiers entre eux? 98=3.31+5 31=6.5+1 =>PGCD(31,98)=1 Cherchons l’inverse a.31+b.98=1 (1) 31=6.5+1 (2) 98=3.31+5 (1)-6.(2) 31-6.98=1-18.31 19.31-6.98=1 19=31-1(mod98)
Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique m premier Si m est un nombre premier, tous les éléments de m (hormis 0) ont un inverse pour la multiplication dans m. Alphabet à 29 caractères A B C D E F G H I J K L M O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 P Q R S T U V W X Y Z 15 16 17 18 19 20 21 22 23 24 25 . , _ 26 27 28
Chiffrement par substitution monoalphabétique Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Chiffrement par substitution monoalphabétique
Formule générale de codage Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Formule générale de codage (x)=(ax+b) mod 29 Conditions:
Exemple de chiffrement Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Exemple de chiffrement « Je ne suis pas intelligent, je suis incroyablement curieux. » (x)=c=(2x+3) mod 29. Message clair x Equivalent numérique 2x+3 (2x+3) mod 29 Cryptogramme c e 4 11 l _ 26 55 n 13 29 a j 9 21 21 v vl_al_kotk_edk_tamlzztplam._vl_kotk_tahicwdfzl,lam_hoiulou
? c=(x)=(ax+b) mod 29 x=s-1(c)= a-1 (c-b) mod 29 Déchiffrement Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Déchiffrement ? c=(x)=(ax+b) mod 29 x=s-1(c)= a-1 (c-b) mod 29
Déchiffrement z 25 330 11 l (x)=c=(2x+3) mod 29 Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Déchiffrement zd_hoitcktml_lkm_oa_qtzdta_jlndom (x)=c=(2x+3) mod 29 x=s-1(c)= 2-1 (c-3) mod 29 x=s-1(c)= 15 (c-3) mod 29 Cryptogramme c Equivalent numérique 15(c-3) 15 (c-3) mod 29 Texte clair x d 3 a _ 26 345 h 7 60 2 z 25 330 11 l La curiosité est un vilain défaut
E , M _ Cryptanalyse la_ipjudlune_eln_pb_rulaub_keoapn Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Cryptanalyse E , M _ _e,ipjudlunm,mln,pb,ru_eub,kmoepn _e_ipjudlune_eln_pb_ru_eub_keoepn la_ipjudlune_eln_pb_rulaub_keoapn lavipjudsute_est_pb_rulaub_keoapt la_iujidsite_est_un_vilain_keoaut la curiosité est un vilain défaut
Equivalent numérique x Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Pour trouver la clé ? ? c=(x)=(ax+b) mod 29 Cryptogramme Equivalent numérique c Texte clair Equivalent numérique x , 27 - 26 m 12 e 4 27=(a.26+b)mod29 12=(a.4+b)mod29
Chiffrement par substitution polyalphabétique Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Chiffrement par substitution polyalphabétique
C = (AxM + B) mod29 , où Chiffrement C est la matrice du message codé Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Chiffrement C = (AxM + B) mod29 , où C est la matrice du message codé M est la matrice du message clair A est la matrice clé de multiplication B est la matrice clé d’addition
La matrice du message clair Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique La matrice du message clair « Il faut détruire Carthage. » « IL_/FAU/T_D/ETR/UIR/E_C/ART/HAG/E. _ » A M =
C = A x M + B Les matrices clés Conditions préalables sur le genre : Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Les matrices clés Conditions préalables sur le genre : C = A x M + B [ ?x? ] = [ ?x? ] x [ lxm ] + [ ?x? ] [ ?x? ] = [ ?xl ] x [ lxm ] + [ ?x? ] [ ?x? ] = [ lxl ] x [ lxm ] + [ ?x? ] [ ?x? ] = [ lxl ] x [ lxm ] + [ lxm ] [ lxm ] = [ lxl ] x [ lxm ] + [ lxm ]
Matrice clé de multiplication A Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Matrice clé de multiplication A Genre de la matrice : [ 3x3 ] Deux possibilités : Matrice quelconque [ 3x3 ] Matrice [ 3x3 ] représentée par un mot de 9 lettres déterminant de A ≠ 0 Soit A = 25
Matrice clé d’addition B Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Matrice clé d’addition B Genre de la matrice : [ 3x9 ] Deux possibilités : Duplication m fois d’une matrice [ 3x1 ] représentée par un mot clé de 3 lettres (Vigenère) Matrice quelconque de genre [ 3x9 ] (Vernam) Soit B = « KEY » dupliquée 9 fois
La matrice du message codé Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique La matrice du message codé C = (A x M + B) mod29 ( x )mod 29 + = « .MM/QJZ/_X,/SIT/LYS/JIZ/HEH/ILP/RIA »
« .MM/QJZ/_X,/SIT/LYS/JIZ/HEH/ILP/RIA » Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Codage multiple « IL_/FAU/T_D/ETR/UIR/E_C/ART/HAG/E.A » « .MM/QJZ/_X,/SIT/LYS/JIZ/HEH/ILP/RIA »
C – B = AxM (A-1 (C – B)) mod 29 = M ? Déchiffrement Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Déchiffrement Opération utilisée pour le codage : C = (AxM + B) mod 29 Opération utilisée pour le décodage : C – B = AxM (A-1 (C – B)) mod 29 = M ?
Matrice du cryptogramme Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Matrice du cryptogramme (A-1 (C – B)) mod 29 = M EGQ/PXZ/QKQ/PIS/UBC/.XR/RMO/HDW C =
(A-1 (C – B)) mod 29 = M A-1 = A-1 = Les matrices clés Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Les matrices clés (A-1 (C – B)) mod 29 = M A-1 = A-1 =
La matrice du message clair Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique La matrice du message clair (A-1 (C – B)) mod 29 = M ( ( x ))mod 29 - = « CAR/THA/GE_/EST/_DE/TRU/ITE/.AA »
Attaque à texte clair Cryptanalyse Analyse fréquentielle… ? Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Cryptanalyse Analyse fréquentielle… ? Une lettre n’a pas qu’une correspondante Multiplication des inconnues Mauvaise méthode Attaque à texte clair Découverte d’équations avec les éléments des clés comme inconnues
C = (A x M + B)mod29 Conclusion Intro/ Congruence/ Chiffrement monoalphabétique/ Chiffrement polyalphabétique Conclusion C = (A x M + B)mod29