CRYPTOGRAPHIE Amel Guetat Licence Pro ATC 05/02/2008 INTRODUCTION - HISTORIQUE La cryptographie est la science de l’écriture secrète Du grec kruptos, caché et graphein qui signifie écrire Première apparition dans le domaine militaire Code de César : substitutions mono-alphabétiques simples http://www.bibmath.net/crypto/substi/cesar.php3 Enigma: substitution poly-alphabétique Aujourd’hui applications militaires et civiles INTRODUCTION - TERMINOLOGIE Cryptographie : Conception de formules mathématiques permettant de transformé un message clair en un message chiffré Message Chiffrement en clair Message Déchiffrement chiffré Message en clair Algorithme (formule) Algorithme (formule) + clé (secret) + clé (secret) Décryptage : retrouver le message en clair sans la clé Cryptanalyse : l’art du décryptage INTRODUCTION - OBJECTIFS La confidentialité d’informations sensibles Historiquement la première utilisation Intégrité L’authenticité S’assurer de l’identité d’un Authentification individu ou d’une application distante Le contrôle d’intégrité Non-Répudiation Détecter toute altération Confidentialité d’information (stockée ou transmise) La non-répudiation Empêcher un expéditeur de pouvoir nier son envoi CONFIDENTIALITÉ DES DONNÉES Concept permettant de s’assurer que l’information ne peut être lue que par les personnes autorisées Solution dans le monde réel : Utilisation d’enveloppes scellées Verrouillage avec clés Mesures de Sécurité physique Utilisation de l’encre invisible etc AUTHENTIFICATION Concept permettant de s’assurer que l’identité de l’interlocuteur et bien celle qu’il prétend Techniques traditionnelles : Some Thing you Know : mot de passe Some Thing you Have : carte à puce Some Thing you Are : empreinte digitale INTÉGRITÉ DES DONNÉES Ensemble de moyens et techniques permettant de restreindre la modification des données aux personnes autorisées NON-RÉPUDIATION Ensemble de moyens et techniques permettant de prouver la participation d’une entité dans un échange de données PRINCIPAUX TYPES D’ALGORITHMES Algorithmes à clé secrète ou symétriques Algorithmes à clé publique ou asymétrique Algorithmes de condensation Algorithmes de signature numérique Algorithmes d’échange de clés CRYPTOGRAPHIE SYMÉTRIQUE : PRINCIPES Clé 01010000111 Clé 01010000111 Texte clair Cryptage Voici le numéro de ma carte de crédit 111111, Internet Décryptage Texte clair Voici le numéro de ma carte de crédit 111111, ☺☼♀☻ ♠♣▼╫◊ ♫◙◘€£ ¥₪Ω٭ Texte crypté Emetteur Récepteur CRYPTOGRAPHIE SYMÉTRIQUE : MODES OPÉRATIONNELS Cryptage par flux Opère sur un flux continu de données Mode adapté pour la communication en temps réel Implémenté en général sur des supports hardwares Cryptage par bloc Opère sur des blocs de données de taille fixe Implémentation logicielle en générale ALGORITHME SYMÉTRIQUE Principalement deux opérations Substitution (remplacement d’un caractère) Transposition (changement de position d’un caractère) Avantage Rapidité Inconvénients Problème de la confidentialité de l’échange des clés Algorithme d’échange de clés Une paire de clé par interlocuteurs gestion exponentielle CRYPTOGRAPHIE SYMÉTRIQUE : EXEMPLES DES : Data Encryption Standard Développé par IBM Standard depuis 1977 Utilise des clé de taille 56 bits DES n’offre plus un niveau de sécurité acceptable 3DES a remplacé DES mais il est extrêmement lourd CRYPTOGRAPHIE SYMÉTRIQUE : EXEMPLES AES : Advanced Encryption Standard (Rijndael) Développé par Vincent Rijmen et Joan Daemen Standard cryptographique depuis 2000 Sélectionné parmi une vingtaine d’algorithmes qui ont participés à un concours lancé par NIST Utilise des clés de tailles 128, 192 et 256 bits ALGORITHME ASYMÉTRIQUE Une clé pour chiffrer, une autre clé pour déchiffrer Clé C1 publique Hello Chiffrement world Clé C2 privée f}ÊO ð;6tÊb ØÃÉm\u000 Déchiffrement Utilisation asymétrique des clés Chiffrement avec C1 déchiffrement avec C2 Chiffrement avec C2 déchiffrement avec C1 Hello world CRYPTOGRAPHIE ASYMÉTRIQUE : PRINCIPES Chaque personne dispose d’une paire de clé : : connue uniquement par son propriétaire Clé publique : publiée dans des annuaires publiques Clé privée Si on crypte avec l’une de ces clés le décryptage se fait uniquement avec l’autre CRYPTOGRAPHIE ASYMÉTRIQUE PREMIER MODE (1) Clé privée du récepteur Clé publique du récepteur Texte clair Cryptage Voici le numéro de ma carte de crédit 111111, Internet Décryptage Voici le numéro de ma carte de crédit 111111, ☺☼♀☻ ♠♣▼╫◊ ♫◙◘€£ ¥₪Ω٭ Texte crypté Emetteur Texte clair Récepteur CRYPTOGRAPHIE ASYMÉTRIQUE PREMIER MODE (2) Ce mode assure la confidentialité des données Confidentialité CRYPTOGRAPHIE ASYMÉTRIQUE DEUXIÈME MODE (1) Clé publique de l’émetteur Clé privée de l’émetteur Texte clair Cryptage Voici le numéro de ma carte de crédit 111111, Internet Décryptage Voici le numéro de ma carte de crédit 111111, ☺☼♀☻ ♠♣▼╫◊ ♫◙◘€£ ¥₪Ω٭ Texte crypté Emetteur Texte clair Récepteur CRYPTOGRAPHIE ASYMÉTRIQUE DEUXIÈME MODE (2) Ce mode assure l’authenticité de l’émetteur ainsi que la non-répudiation Authentification Non-Répudiation AVANTAGES ET INCONVÉNIENTS Avantages Confidentialité : pas d’échange de clé secrète Tout le monde peut écrire secrètement à A avec sa clé publique Authentification : c’est aussi un algorithme de signature A peut écrire en prouvant que c’est bien lui Inconvénient Très lent à l ’exécution CRYPTOGRAPHIE ASYMÉTRIQUE : EXEMPLES RSA (Ron Rivest, Adi Shamir et leonard Adelman) : algorithme utilisé pour le cryptage et la signature électronique Diffie-Hellman : algorithme utilisé pour l’échange et la distribution des clés symétriques ALGORITHME ASYMÉTRIQUE Exemple RSA (Rivest Shamir Adleman - 1977) Choisir deux grands nombres premiers P et Q, N = P × Q Choisir la clé de chiffrement E : E premier avec (P−1) × (Q−1) Calcul de la clé de déchiffrement D :D × E ≡ 1 mod [(P−1)(Q−1)] Clé publique (E,N) M C = ME (mod [N]) Clé privée (D,N) C M = CD (mod [N]) M ALGORITHME ASYMÉTRIQUE RSA (suite) La longueur en bits de N donne la longueur de la clé RSA Blocs M de taille inférieure à N Clé de 512, 768, 1024 et 2048 bits « Cassage » de clé par factorisation des grands nombres Clé de 512 bits cassée en 1999 Sûr avec une longueur de clé importante (1024 bits) Clé publique (17,35) 15 C = 1517 (mod [35]) Clé privée (5,35) C M = C5 (mod [35]) 15 EXERCICE 1: CODE DE CÉSAR But: Décaler les lettres de l’alphabet avec un nombre k. A B C D E F G H I J 0 1 2 3 4 5 6 7 8 9 Message chiffré=(Message initiale+clé) mod 26 Message initiale = (Message chiffré - clé) mod 26 Exemple: NSA avec une clé k=5 SXF • Déchiffrer le message suivant et trouver la clé k du décalage. SH WYVJOHPUL MVPZ VU JVTTLUJL HCLJ SLZ AW • quelle est le nombre maximal d’essaie à faire pour trouver la solution ? EXERCICE 2: CHIFFREMENT AFFINE Clé: (k1,k2) et pgcd(k1,26)=1 Chiffrement d’un message M Avec k1, k2 є [0,25] C=(k1*M + k2) mod 26 Déchiffrement d’un message C M=(k1)-1 * (C-k2) mod 26 Exemple: le clé est (3,11) • chiffrement Message= NSA : 13 - 18 - 0 24 - 13 - 11 YNL • Déchiffrement : (k1)-1 = 3-1 mod 26 = 9 car 3*9 mod 26=1 EXERCICE 2 : Chiffrer une phrase quelconque selon une clé de votre choix (maximum 5 mots): Ex: Licence professionnel ATC Échanger les messages ainsi chiffrés avec un de vos collègues. Déchiffrer la phrase de votre collègue et donner le temps de calcul pour effectuer cette opération. Quel est le nombre de combinaisons maximum nécessaire pour déchiffrer un code affine? Attention: k1, k2 є [0,25] et pgcd(k1,26)=1 L'ANALYSE DES FRÉQUENCES Méthode de cryptanalyse Al-Kindi au IXe siècle Examiner la fréquence des lettres employées dans un message chiffré Fréquemment utilisée pour décoder des messages chiffrés par substitution (Chiffre de Vigenère ou le Chiffre de César). CHIFFRE DE VIGENÈRE Système de Chiffrement De Vigenère au XVIe siècle Chiffrement polyalphabétique: Exemple: Clé: ECS M: HELLOWORLD ECSECSECSE C: LGDPQOSTHD Lettre en Clair Clé EXERCICE 3 : Chiffrer une phrase quelconque en utilisant le tableau de Vigenère selon une clé de votre choix. Échanger les messages ainsi chiffrés avec un de vos collègues. Déchiffrer vos messages respectifs. EXERCICES 1 BIS Profiter de la figure suivante pour accélérer le temps de déchiffrement. (cryptanalyse) Fréquences des lettres en Français EXERCICE 4 : RSA 1. 2. 3. 4. Détailler la procédure à suivre pour générer un couple clé publique et clé privée par l’algorithme de RSA. Chiffrer le message « 21 » avec la clé publique (103, 143). Le calcul peut être facilement fait à la main en remarquant que 214 ≡ 1 (mod 143). Sachant que N=11x13, calculer la clé privée associée à la clé publique (103, 143). Déchiffrer le message obtenu en 2. pour retrouver le message en clair. ALGORITHME DE CONDENSATION (HACHAGE) Hello Condensation world H Longueur quelconque Condensé / Empreinte Longueur fixe (128 bits par exemple) Propriétés: Grande dispersion: Un petit écart entre deux documents doit créer un grand écart entre les condensés Absence de collision: 2 textes différents ne génèrent pas un même condensé: T1 ≠ T2 H(T1) ≠ H(T2) Irréversibilité: Connaissant T, il est facile de trouver H(T) Connaissant H(T), il est très difficile d’obtenir T Exemples MD5 (Message Digest - 1991): génère un condensé de 128 bits SHA 256 : génère un condensé de 256 bits ALGORITHME DE SIGNATURE NUMÉRIQUE Garantir l’intégrité d’un document Authenticité = ? Vérification SIGNATURE NUMÉRIQUE (SUITE) Exemple RSA (Clé publique (E,N) - Clé privée (D,N)) Émetteur : signe M S = M E (mod [N]) Récepteur : vérifie la signature M ' = S D (mod [N]) ; M ' = M ⇒ OK ALGORITHME D’ÉCHANGE DE CLÉS Garantir la confidentialité de la clé secrète Exemple D-H (Diffie-Hellman) Génération à distance d’une clé secrète Sûreté Impossible pour un espion d’obtenir la clé échangée Attaque par le milieu possible Basé sur le problème du logarithme discret ALGORITHME D’ÉCHANGE DE CLÉS Schéma de l’algorithme de Diffie-Hellman Alice g et p grands ; (p-1)/2 premier Bob g premier par rapport à p Choix de deux entiers g et p Choix de x (entier) X = g x (mod [p]) Choix de y (entier) Y = gy (mod [p]) X Y Calcul de Calcul de C = Yx (mod [p]) C = Xy Communication secrète - Clé C (mod [p]) ATTAQUES CRYPTOGRAPHIQUES Cryptanalyse Attaques à texte chiffré Messages chiffrés (même algo., clé) décryptage Attaques à texte en clair connu Messages clairs et équivalents chiffrés découverte de la clé Attaques à texte clair choisi Chiffrer un message en clair facilite la découverte de la clé LES CERTIFICATS NUMÉRIQUES Protocoles cryptographiques asymétriques Basés sur la diffusion et la connaissance des clés publiques Problème Qu’est-ce qui vous prouve qu’une clé publique appartient bien à votre correspondant et non à un espion ? Solution : un certificat numérique « Carte d’identité » en quelque sorte Associe à une identité une clé publique Certification par une autorité de confiance (le tiers de confiance) Tiers de confiance - autorité de certification (CA) Doit s’assurer de l’exactitude des données du certificat Signe le certificat avec sa clé publique CERTIFICATION NUMÉRIQUE D’UNE CLÉ PUBLIQUE APPLICATIONS - MESSAGERIE PGP (Pretty Good Privacy - P. Zimmermann) Protocole cryptographique hybride Échange d’une clé secrète par cryptographie à clé asymétrique (RSA) Échange par cryptographie à clé symétrique (IDEA) Pas de certificat : climat de confiance Versions gratuites et commerciales S/MIME (Secure/Multipurpose Internet Mail Extensions) Chiffrement (hybride) et/ou signature (DES ou RC2) et/ou (MD5 ou SHA avec RSA) Certificat X.509 v3 Intégré dans Microsoft Outlook Express et Netscape Messenger APPLICATIONS - SECURE SOCKET LAYER Commerce électronique : SSL Netscape SSL v1 (1994), SSL v3(1995) TLS (Transport Layer Security) en 1999 Fonctionne suivant un mode client/serveur. Entre les couches applications (HTTP, FTP, SMTP, etc.) et la couche transport TCP. Caractéristiques au niveau sécurité Authentification du serveur Confidentialité des données échangées Intégrité des données échangées En option: Authentification ou Authentification forte du client avec l'utilisation d'un certificat numérique. Indépendance / plate-forme