ISSAT SOUSSE 3 LSI Département informatique Sécurité informatique AU : 2021/202

ISSAT SOUSSE 3 LSI Département informatique Sécurité informatique AU : 2021/2022 Dr. WALA ZAABOUB 1/16 Chapitre 5 : La cryptographie Définitions La cryptologie : est une science des messages secret, elle comporte deux branches : la cryptographie et la cryptanalyse. La cryptographie : est l’étude des méthodes de chiffrement. La cryptanalyse : est l’étude des procédés de décryptage/déchiffrement sans connaître la méthode cryptographique et/ou ses paramètres. Le Chiffrement : consiste à transformer une donnée (texte, message, ...) à l'aide d'une clé pour la rendre incompréhensible afin de la protéger. Le déchiffrement : est une fonction permettant de retrouver le texte clair à partir du texte chiffré. Texte chiffré (cryptogramme) : est le résultat de l’application d’un chiffrement à un texte clair. Clef : Il s’agit du paramètre impliqué et autorisant des opérations de chiffrement et/ou déchiffrement. Crypto-système : est l’ensemble des clés possibles (espace de clés), des textes clairs et chiffrés possibles associés à un algorithme donné. Il y a deux catégories de chiffrement : chiffrement symétrique et asymétrique. Le chiffrement symétrique est un chiffrement à clef secrète : Clef de chiffrement = clef de déchiffrement. Par contre, le chiffrement asymétrique est un chiffrement à deux clefs (l'une secrète et l'autre publique): la clef de chiffrement est différente à la clef de déchiffrement. 1. Chiffrement symétrique : Il y a deux types de chiffrement: - Chiffrement en flux continu (Stream cypher) : il agit sur le texte en clair par bit ou par caractère (octet) lors de cryptage ou décryptage. Exemple : RC4, SEAL. - Chiffrement par bloc (Block cypher) : il agit sur le texte en clair par groupes de bits appelés blocs. Exemple: ECB (electronic code book), CBC (cypher block chaining, DES (data encryption standard, AES (advanced encryption standard). La cryptographie symétrique repose sur deux principes : substitution et transposition ◦ Substitution : consiste à remplacer les caractères du texte clair par d’autres caractères (lettres, chiffres ou autres caractères). ◦ Transposition : utilise le principe mathématique des permutations. Toutes les lettres du message sont présentes, mais dans un ordre différent. ISSAT SOUSSE 3 LSI Département informatique Sécurité informatique AU : 2021/2022 Dr. WALA ZAABOUB 2/16 - Chiffrement par transposition ◦ Transposition simple de colonnes ◦ Transposition complexe de colonnes - Chiffrement par substitution ◦ Mono-alphabétique: exp. César ◦ Poly-alphabétique: exp. Vigenère 1.1. Chiffrement par transposition simple de colonnes Exemple : M = CECI EST UN TEXTE À CHIFFRER DE LA PLUS HAUTE IMPORTANCE Le texte chiffré : CNHEARETILUTCEFATAIXFPENETRLICSEEUMETÀRSPØUCDHOØ Le chiffrement consiste à écrire en lignes le message dans une matrice 6x8 puis à lire les colonnes les unes à la suite des autres. Le déchiffrement consiste à écrire en colonnes le message chiffré dans une matrice 6x8 puis à lire les lignes les unes à la suite des autres. 1.2. Chiffrement par transposition complexe de colonnes Il s’agit de complexer davantage la transposition de colonnes en lisant les colonnes dans un ordre différent. Il faut d’abord changer l’ordre des colonnes puis les lire de gauche à droite. Exemple : Le texte chiffré : ETRLICETILUTIXFPENCNHEAR… ISSAT SOUSSE 3 LSI Département informatique Sécurité informatique AU : 2021/2022 Dr. WALA ZAABOUB 3/16 1.3. Chiffrement de César On place les 26 lettres de l’alphabet dans l’ordre habituel et le message codé est obtenu en décalant circulairement (après z en reprend en a) chaque lettre de message clair de 3 positions (k=3). Le chiffrement de César peut être généralisé en utilisant une clé quelconque. p : lettre en clair, k : clé, C : lettre chiffré, E : fonction de chiffrement, D : fonction de déchiffrement Pour le chiffrement : C = E(p) = (p + k) mod 26 Pour le déchiffrement : p = D(C) = (C − k) mod 26 Exemple : texte = ABCD, Clé k= 10 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 Décalage de 10 vers la droite, A est remplacé par K Décalage de 10 vers la droite, B est remplacé par L Décalage de 10 vers la droite, C est remplacé par M Décalage de 10 vers la droite, D est remplacé par N Texte chiffré : KLMN Autre dérivé de chiffrement César, l’alphabet substituant ne résulte plus d’un simple décalage mais d’une permutation aléatoire. Si le texte est suffisamment long, il est possible de trouver la substitution en analysant la fréquence des lettres. Exercice : 1. Ecrire une fonction Crypt() prenant en paramètre un caractère (chaine d’un seul caractère) et la clé, et affiche le caractère crypté. 2. Ecrire une fonction CesarCrypt() prenant en paramètre une chaine de caractères (le message à crypté) et la clé, et affiche le message crypté. 3. Ecrire une fonction CesarDecrypt() qui prend 2 paramètres, un texte crypté et la clé et affiche le texte décrypté. ISSAT SOUSSE 3 LSI Département informatique Sécurité informatique AU : 2021/2022 Dr. WALA ZAABOUB 4/16 Correction : 1) 2) ISSAT SOUSSE 3 LSI Département informatique Sécurité informatique AU : 2021/2022 Dr. WALA ZAABOUB 5/16 3) CesarDecrypt(S,k)= CesarCrypt(S,-k) ISSAT SOUSSE 3 LSI Département informatique Sécurité informatique AU : 2021/2022 Dr. WALA ZAABOUB 6/16 1.4. Chiffrement de Vigenère C’est une amélioration du chiffrement de César. Sa force réside dans l’utilisation non pas de 1, mais de 26 alphabets décalés pour chiffrer un message. Le chiffrement de Vigenère utilise le Carré de Vigenère : une table composée de 26 alphabets, écrit dans l’ordre, mais décalée de ligne en ligne d’un caractère. On écrit encore en haut un alphabet complet, pour la clé, et à gauche verticalement un autre alphabet pour le texte à coder. Pour coder un message, on choisit une clé qui sera un mot de longueur arbitraire. On écrit ensuite cette clé sous le message à coder, en la répétant aussi souvent que nécessaire pour que sous chaque lettre du message à coder on trouve une lettre de la clé. Pour coder, on regarde dans le tableau l’intersection de la ligne de la lettre à coder avec la colonne de la lettre de la clé. Exemple : Chiffrer le texte "CHIFFRE DE VIGENERE" avec la clef "BACHELIER" (cette clef est éventuellement répétée plusieurs fois pour être aussi longue que le texte clair) La grande force du chiffre de Vigenère est que la même lettre sera chiffrée de différentes manières d’où perte de la fréquence des lettres, ce qui rend inutilisable l’analyse de fréquence classique. ISSAT SOUSSE 3 LSI Département informatique Sécurité informatique AU : 2021/2022 Dr. WALA ZAABOUB 7/16 Exercice : 1. Ecrire une fonction de cryptage void vigenereCrypt(const char text[], const char key[], char * ciphertext) 2. Ecrire une fonction de déchiffrement void vigenereDec(const char * ciphertext, const char * key, char * text), en utilisant la fonction précédente. Correction : 1) ISSAT SOUSSE 3 LSI Département informatique Sécurité informatique AU : 2021/2022 Dr. WALA ZAABOUB 8/16 2) ISSAT SOUSSE 3 LSI Département informatique Sécurité informatique AU : 2021/2022 Dr. WALA ZAABOUB 9/16 2. Chiffrement asymétrique : Chiffrement RSA Le chiffrement asymétrique est appelé aussi chiffrement à clé publique. Les clefs de chiffrement et déchiffrement sont distinctes et ne peuvent se déduire l’une de l’autre. Si la clé publique sert au chiffrement, tout le monde peut chiffrer un message, que seul le propriétaire de la clé privée pourra déchiffrer. Exemples : RSA, EL-Gamal. L’algorithme RSA a été inventé par Rivest, Shamir et Adleman. Il est utilisé dans les sites web commerciaux, les cartes à puce, les banques... La puissance du cryptage RSA est en effet basée sur la difficulté de trouver deux grands nombres premiers p et q à partir de leur produit n. C'est pour cela que l'on choisit n très grand, pour rendre la factorisation hors de portée, même des meilleurs ordinateurs. 2.1. Principes : Génération des clés : 1. choisir au hasard deux grands nombres p et q premiers 2. calculer n=p*q et z=(p-1)*(q-1) 3. sélectionner e tel que: e et z soient premiers entre eux (PGCD (e, z)=1) avec 1 < e < z 4. calculer d tel que : e*d= 1 (modulo z ) (e et d sont inverses l’un de l’autre modulo z) Clé publique : (e,n) ou tout simplement e Clé secrète (privé) : (d,n) ou tout simplement d Chiffrement : 1. Obtenir la clé publique (e,n) du destinataire 2. Représenter le message comme un entier m tel que 1 < m < n 3. Calculer le texte chiffré C = me mod n Déchiffrement : A l’aide de la clé privé d, calculer m = Cd mod n 2.2. Exemples Exemple 1: Chiffrer (nombre) /Déchiffré Supposons qu’on a : p = 3, q =11, n = p*q= 33, z=(p-1)*(q-1) = 20, e = 3 et d = 7. 1. Chiffrer le message M représenté par le nombre 29 : Le message crypté C = 293 mod 33=2 2. Déchiffrer le nombre 2: Le message en clair M= 27 mod 33=29 Remarque: dans la pratique, soit M le message binaire à crypter, on découpe M en blocs de uploads/Science et Technologie/ tp-securite-cryptographie.pdf

  • 12
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager