INFO006
Transcription
INFO006
INFO006 (ex INFO913) - Cryptologie et Sécurité Informatique Master 2 ISC Jacques-Olivier Lachaud1 1 Laboratoire de Mathématiques — Université de Savoie janvier 2011 J.-O. Lachaud (LAMA) INFO006 1 / 183 Introduction INFO006 : Cryptologie et sécurité informatique Eléments abordés I I introduction à la sécurité informatique cryptologie : principes et mise en oeuvre Evaluation 1 2 contrôle continu : 2 TPs exposé sur un thème précis Déroulement : Cours (8 × 1, 5h), TD (2 × 1, 5h), TP (3 × 3h) http ://www.lama.univ-savoie.fr, et rajouter /wiki, suivre INFO006 J.-O. Lachaud (LAMA) INFO006 2 / 183 Plan 1 Introduction à la sécurité et à la cryptologie Définitions et exemples Sécurité Criminalité informatique Apports de la cryptographie à la sécurité 2 Cryptosystèmes et science de la cryptologie 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 3 / 183 Plan 1 Introduction à la sécurité et à la cryptologie Définitions et exemples Sécurité Criminalité informatique Apports de la cryptographie à la sécurité 2 Cryptosystèmes et science de la cryptologie 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 4 / 183 Sécurité informatique Ensemble des moyens techniques, organisationnels, juridiques et humains nécessaires et mis en place pour conserver, rétablir, et garantir la sécurité de l’information, du système d’information et des systèmes et ressources informatiques. Notamment, on veut préserver I I I l’intégrité de l’information la confidentialité de l’information la disponiblité des systèmes Systèmes informatiques soumis à des menaces I I I I utilisateur du système personne malveillante programme malveillant sinistre (vol, incendie, dégât des eaux) J.-O. Lachaud (LAMA) INFO006 5 / 183 Cryptographie et cryptanalyse [Source Wikipedia] Definition (Cryptographie) La cryptographie est une des disciplines de la cryptologie s’attachant à protéger des messages (assurant confidentialité, authenticité et intégrité) en s’aidant souvent de secrets ou clés. Definition (Cryptanalyse) La cryptanalyse s’oppose, en quelque sorte, à la cryptographie. En effet, si déchiffrer consiste à retrouver le clair au moyen d’une clé, cryptanalyser c’est tenter de se passer de cette dernière. Cryptographie : outil pour la sécurité informatique J.-O. Lachaud (LAMA) INFO006 6 / 183 Plan 1 Introduction à la sécurité et à la cryptologie Définitions et exemples Sécurité Criminalité informatique Apports de la cryptographie à la sécurité 2 Cryptosystèmes et science de la cryptologie 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 7 / 183 Critères de sécurité Mise en place de solutions de sécurité pour satisfaire disponibilité : probabilité de bon fonctionnement, accessibilité, continuité de service intégrité : certification de la non-altération des données, traitements et services confidentialité : protection des données contre une divulgation non autorisée authentification : vérification de l’identité de l’utilisateur et de ses autorisations non-répudiation : imputabilité, traçabilité, auditabilité J.-O. Lachaud (LAMA) INFO006 8 / 183 Domaines d’intervention de la sécurité sécurité physique environnement humain (politique de sécurité, éducation, charte) environnement matériel (incendie, dégâts des eaux, protection des salles, sauvegardes, alimentations électriques) sécurité de l’exploitation hôte (système d’exploitation à jour, authentification) sécurité logique données (accès aux fichiers, autorisations, chiffrements, sauvegarde) sécurité applicative applications (virus, chevaux de troie, espiogiciels, spam, restrictions et localisations des applications) sécurité des télécommunications réseau interne (protocoles sécurisés, dimensionnement) alentours (pare-feu, vpn, nomadisme) J.-O. Lachaud (LAMA) INFO006 9 / 183 Menaces informatiques menace : action susceptible de nuire vulnérabilité ou faille : niveau d’exposition face à une menace dans un certain contexte contre-mesure ou parade : ensemble des actions mises en oeuvres en prévention d’une menace attaque : exploitation d’une faille (d’un syst info) à des fins non connus de l’exploitant du système et généralement préjudiciables en permanence sur Internet par machines infectées rarement pirates J.-O. Lachaud (LAMA) INFO006 10 / 183 Motivations des attaques intrusion dans le système vol d’informations industrielles (brevets), personnelles (bancaires), commerciales (contrats), organisationnelles troubler le bon fonctionnement d’un service (déni de service, defacing) utiliser le système comme rebond pour une autre attaque utiliser les ressources d’un système (ex : bonne bande passante) J.-O. Lachaud (LAMA) INFO006 11 / 183 Plan 1 Introduction à la sécurité et à la cryptologie Définitions et exemples Sécurité Criminalité informatique Apports de la cryptographie à la sécurité 2 Cryptosystèmes et science de la cryptologie 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 12 / 183 Crime informatique, cybercrime Crime informatique : délit où le système informatique est l’objet du délit et/ou le moyen de le réaliser. Cybercrime : forme du crime informatique qui utilise Internet en 2007, la cybercriminalité pèse 7,1 milliards de dollars aux USA en 2009, assignement en justice pour 559 millions de dollars aux USA (×2 en deux ans) Typologie : malveillance, erreur, accident Cibles : états, organisations, individus Vol d’identité, Chantage, Fraude financière, détournements de fonds, vol de biens virtuels, atteinte à la dignité, dénonciation calomnieuses, espionnage, cyberterrorisme, désinformation, apologies de crimes, escroqueries, atteinte aux mineurs, atteinte à la vie privée, incitation à la haine raciale, . . . J.-O. Lachaud (LAMA) INFO006 13 / 183 Internet : un facteur aggravant dématérialisation des acteurs du délit, des objets du délit vulnérabilité : complexité des infrastructures informatique et réseaux automatisation, réalisation à grande échelle ⇒ ubiquité, anonymat immatérialité : information numérique peut être détruite, modifiée, usurpée disponibilité d’outils, paradis numériques dépendance des états/organisations à l’informatique ⇒ facteur de risque ⇒ cyberterrorisme J.-O. Lachaud (LAMA) INFO006 14 / 183 Typologie des attaques accès physique : coupure électricité, vol de disque dur, écoute traffic réseau, récupération de matériels interception de communications : vol de session, usurpation d’identité, détournement de messages polupostage ou spam (98 % des mails) dénis de services : faiblesse de protocoles TCP/IP, vulnérabilité de logiciels serveurs intrusions : maliciels (virus, vers, chevaux de Troie), balayage de ports, élévation de privilèges, débordements de tampon trappes : porte dérobée dans un logiciel ingénierie sociale : contact direct de l’utilisateur attention aux attaques par rebond : l’utilisateur “complice” peut voir sa responsabilité engagée. J.-O. Lachaud (LAMA) INFO006 15 / 183 Logiciels malveillants : Virus, Vers, troyens I Virus Tout programme capable d’infecter un autre programme en le modifiant de façon à ce qu’il puisse se reproduire Brain (premier sur PC en 1986), Netsky (2004, lit fichiers EML, HTML pour se propager par email), Sobig-F (2003, contient un serveur SMTP) Infecte : Programmes, documents, secteurs de boot Ver (Worm) Programme se propageant à travers le réseau Blaster (Août 2003, faiblesse RPC Windows), Welchia (qqs jours après, élimine Blaster) Troyen ou Cheval de Troie Programme à l’apparence utile mais cachant du code pour créer une faille dans le système (backdoor) BackOrifice, GrayBird (soi-disant nettoyeur de Blaster) Porte dérobée (ou backdoor) Fonctionnalité inconnue de l’utilisateur, qui donne un accès secret au logiciel/système Trusting Trust (1984), noyau Linux (2003) J.-O. Lachaud (LAMA) INFO006 16 / 183 Logiciels malveillants : Virus, Vers, troyens II Machine zombie ordinateur contrôlé à l’insu de son utilisateur par un pirate informatique (suite à une infection par ver/cheval de troie). Sert de rebond. Botnet Réseau de machines zombies. Utile pour lancer des attaques de déni de service ou spams Bombes logiques Programme se déclencheant suite à un événement particulier (date, signal distant) CIH/Chernobyl (déclenchement 26 avril 1999, 26 avril 1986) Virus mutants réécriture de virus existants Virus polymorphes modifie son apparence, pour ne pas être reconnu Rétro-Virus attaque les signatures des antivirus Virus boot Virus s’installant sur un secteur d’amorçage (disquette, disque) J.-O. Lachaud (LAMA) INFO006 17 / 183 Logiciels malveillants : Virus, Vers, troyens III Virus d’applications (ou de document/macros) Programme infectant un document contenant des macros, exécutable par une application : VBScript Concept (1995), Bubbleboy (1999, affichage du mail) Antivirus Logiciel de détection et d’éradication de virus et vers Méthodes : dictionnaires, heuristiques, comportements suspects, émulation (bac-à-sable) scanneurs sur accès : examine les fichiers/programmes à chaque accès scanneurs à la demande : examine les disques/fichiers/programmes suite à une demande J.-O. Lachaud (LAMA) INFO006 18 / 183 Spywares : espiogiciels I Espiogiciel Programme collectant des données sur un utilisateur, les envoyant à une société en général pour du profilage souvent avec des freewares ou sharewares intégrés (PKZip, KaZaA, Real Player) ou externes souvent légaux (dans la licence) parades : ne pas installer de logiciels ( !), antisypwares, firewall keylogger enregistreur de touches : enregistrement des touches à l’insu de l’utilisateur. dispositif d’espionnage. Souvent un logiciel. J.-O. Lachaud (LAMA) INFO006 19 / 183 Spywares : espiogiciels II dongle version hardware (ex : KeyKatch) J.-O. Lachaud (LAMA) INFO006 20 / 183 Logiciels malveillants : Quelques statistiques I [Source Rapport Sophos 2005 sur la gestion des menaces à la sécurité] I I I I I I vandalisme ludique cède la place à la criminalité organisée 1 message sur 44 infecté par un virus (fin nov 2005, 1 sur 12, ver Sober-Z) Fin décembre 2005 : BD Virus Sophos a 114000 virus, vers et autres, 15900 nouveaux en 2005 Méthodes de propagation : connexion directe via le réseau 66,8 %, pièces jointes 15,1%, chat 9,2 %, poste à poste (P2P) 4,5%, navigation web 2,4% Windows est la cible (plus que) majoritaire Ordinateur équipé de Windows sans protection : risque de contamination 95% au bout d’une heure (SOPHOS) http://www.sophos.com/security/top-10/ http://www.symantec.com/ J.-O. Lachaud (LAMA) INFO006 21 / 183 Quelques questions relatives à la sécurité I Quels sont vos droits et devoirs vis-à-vis du système informatique de l’université ? Participez-vous à sa sécurité ? Quelles sont les données ou applications les plus critiques de l’université ? Y a-t-il un risque d’infection en laissant simplement son ordinateur allumé connecté par Internet ? Pourquoi ne peut-on fermer une machine à toute communication extérieure ? Est-ce qu’un téléphone mobile peut être infecté ? Est-ce qu’un routeur peut être infecté ? Est-ce qu’une télévision peut être infectée ? Comment un programme malicieux fait-il pour se rendre invisible après infection ? J.-O. Lachaud (LAMA) INFO006 22 / 183 Quelques questions relatives à la sécurité II Comment un virus fait-il pour ne pas infecter deux fois le même fichier ? Quelles sont les motivations qui conduisent une personne à écrire un logiciel malveillant ? J.-O. Lachaud (LAMA) INFO006 23 / 183 Menaces nouvelles I Social engineering usage de ressorts psychologiques pour obtenir d’un tiers information ou données ⇒ fraude, intrusion réseau, espionnage industriel, vol d’identité. Phishing/hameçonnage Arnaques via internet, usurper une identité fiable (genre banque), redirection vers site pirate ⇒ données bancaires, mots de passe J.-O. Lachaud (LAMA) INFO006 24 / 183 Menaces nouvelles II http://[email protected]/ http://www.mabanque.com.unsite.net/ Pharming (empoisonnement DNS) exploite une vulnérabilité pour rediger le trafic Internet d’un site Web vers un autre. Complémentaire de chevaux de Troie, spywares et phishing. Exemple : americanexpress.com, fedex.com, msn.com, Trendmicro.com (vulnérabilités dans le serveur DNS de Windows NT4 et Windows 2000, depuis corrigées). Slamming fausse facture de renouvellement de nom de domaine et contrainte pour l’achat de noms de domaines proches, faux annuaires professionnels J.-O. Lachaud (LAMA) INFO006 25 / 183 Menaces nouvelles III Vishing (VoIP + phishing). Serveurs VoIP appelant des numéros fixes, redirection vers boîte vocale informant d’anomalie, invitation à contacter un serveur vocal où il donnera ses coordonnées bancaires. Ransomwares code malveillant (virus ou cheval de troie) cryptant certaines données, exige une rançon après pour le déchiffrement. Exemple : Gpcode, scanne .xls .doc .txt .rtf ... Cross Site Scripting (XSS) vulnérabilités dans serveur/app WEB pour insérer du code dans une page html renvoyée dynamiquement Redirection vers un autre site, vol d’identifiant de session Injection de code vulnérabilités dans serveurs/apps (SQL, WEB/XSS, LDAP SELECT * FROM utilisateurs WHERE nom="\$nom"; // Saisie de : toto" OR 1=1 OR nom="titi SELECT * FROM utilisateurs WHERE nom="toto" OR 1=1 OR nom="titi"; J.-O. Lachaud (LAMA) INFO006 26 / 183 Organismes liés à la sécurité informatique I CERTs : Computer Emergency Response Team CERTA : Centre d’Expertise Gouvernemental de Réponse et de Traitement des Attaques informatiques [http ://www.certa.ssi.gouv.fr] Publie des alertes, ainsi que des bulletins hebdomadaires d’actualité Exemple de bulletin d’alerte [http ://www.certa.ssi.gouv.fr/site/CERTA-2009-ALE-016/CERTA-2009-ALE-016.html] Portail gouvernemental de la sécurité [http ://www.securite-informatique.gouv.fr] J.-O. Lachaud (LAMA) INFO006 27 / 183 Chiffres et évolutions des menaces I Pertes et typologie des plaintes référencées par l’I3C (USA) J.-O. Lachaud (LAMA) INFO006 28 / 183 Chiffres et évolutions des menaces II J.-O. Lachaud (LAMA) INFO006 29 / 183 Chiffres et évolutions des menaces III I I Plus de 60% des plaintes portent sur moins de 1000 $ (en 2009) Plus de 87% des plaintes portent sur moins de 5000 $ (en 2009) J.-O. Lachaud (LAMA) INFO006 30 / 183 Chiffres et évolutions des menaces IV Evolution des menaces informatiques dans le monde de 2004 à 2005 Menaces Attaques 2004 Attaques 2005 Phishing 18,0 % 25,0 % Virus et vers 68,6 % 66,6 % [Source CompTIA] Nombres d’incidents rapportés au CERT 1998 1999 2000 2001 2002 2003 5000 11000 22000 53000 85000 138000 vulnérabilités répertoriées par les CERTs 2003 2004 2005 2006 2007 nombre 3784 3780 5990 8064 7236 rapports directs 191 170 213 345 357 Parades : I I I I 2008 6058 310 Formation utilisateurs Antivirus et/ou antispyware Filtre antiphishing Contrôler les certificats des sites J.-O. Lachaud (LAMA) INFO006 31 / 183 Politique de sécurité Politique de sécurité Gestion des identités, des profils utilisateurs, des droits d’accès Prévention des intrusions et malveillances, gestion des vulnérabilités, dissuasion, etc. Gestion des crises, des sinistres, des plans de continuité, de reprise, d’intervention, de poursuite, . . . Audit, évaluation, optimisation, contrôle, surveillance sensibilisation Politique de contrôle d’accès Politique de protection Politique de réaction Politique de suivi Politique d’assurance + respect des contraintes réglementaires et législations + équilibre coût, performance, convivialité Méthodes standards : Marion, Méhari cf. CLUSIF [http ://www.clusif.asso.fr] J.-O. Lachaud (LAMA) INFO006 32 / 183 Plan 1 Introduction à la sécurité et à la cryptologie Définitions et exemples Sécurité Criminalité informatique Apports de la cryptographie à la sécurité 2 Cryptosystèmes et science de la cryptologie 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 33 / 183 Cryptographie et critères de sécurité Satisfaire les objectifs de sécurité via la cryptographie : confidentialité, intégrité, Authentification, non-répudiation, disponibilité ? Outils 1 2 3 4 chiffrements à clé secrète partagée chiffrements à clé public signatures fonctions de hachage Applications : sécurité logique (données), sécurité des transmissions, sécurité de l’exploitation peu en sécurité applicative J.-O. Lachaud (LAMA) INFO006 34 / 183 Chiffrement symétrique ou à clé secrète I Chiffrement symétrique ou à clé secrète confidentialité : clé secrète K partagée entre 2 personnes chiffrer : transforme un message clair M en un message chiffré C = eK (M) avec K déchiffrer : transforme un message chiffré C en un message clair M = dK (C ) avec K algorithmes chiffrement e / déchiffrement d publics contraintes : difficile de déduire M de C sans K en clair J.-O. Lachaud (LAMA) chiffré INFO006 35 / 183 Chiffrement symétrique ou à clé secrète II confidentialité des données pour une personne authentification de l’expéditeur si K est resté secret Exemples : DES, 3DES, blowfish, IDEA, AES Utilisés dans : SSH, SSL/TLS, WiFi (IEEE 802.11i), VPN/IPsec Avantages Inconvénients J.-O. Lachaud (LAMA) rapidité du chiffrement/déchiffrement échange de K par un autre canal, dialogue entre n personnes nécessitent bcp de clés INFO006 36 / 183 Cryptographie asymétrique ou à clé publique I Chiffrement asymétrique ou à clé publique confidentialité : vers tout destinataire (clé publique P, clé secrète S) chiffrer : message clair M en message chiffré C avec clé publique eP déchiffrer : message chiffré C en message clair M avec clés dP,S algorithmes chiffrement e / déchiffrement d publics Chiffrement asymétrique : une communication non secrète permet de véhiculer une information que seul le destinataire peut comprendre. idée [Diffie-Hellman 1976], RSA [Rivest, Shamir, Adleman 1977] Contrainte : difficile de déduire dP,S de eP J.-O. Lachaud (LAMA) INFO006 37 / 183 Cryptographie asymétrique ou à clé publique II Avantages Inconvénients une seule clé secrète pour n expéditeurs, pas de canal secret lenteur, pas d’authentification de la source, attaque Man-In-The-Middle Très utile pour échanger les clés pour ouvrir un tunnel de communication chiffré (VPN, TLS/SSL). Uilisés aussi dans PGP. Nécessité de protocoles d’échanges de clé (IKE pour IPsec) Exemples : RSA [1977] (factorisation), chiffrement ElGamal [1985] (logarithme discret), Merkle-Hellman [1978] (sac-à-dos) J.-O. Lachaud (LAMA) INFO006 38 / 183 Signatures numériques I Signature ou sceau [Diffie et Hellman (1976)] prouver identité de l’expéditeur (non-répudiation) et intégrité du message expéditeur (clé publique P, clé privée S) signer (privé) : fonction sigP,S . Signature S ← sigP,S (M) où M est un message ou un défi vérifier (public) : fonction verP . Booléen b ← verP (M, S). contraintes : empêcher l’usurpation, la non-reconnaissance I I I I calculable par le signataire ∀M le destinataire (et tout individu) peut vérifier la signature non falsifiable non imitable Exemple : signature RSA J.-O. Lachaud (LAMA) INFO006 39 / 183 Signatures numériques II I I signer sigP,S est le déchiffrement dP,S L’expéditeur donne M et S ← sigP,S (M). vérifier verP est le chiffrement eP suivi d’une comparaison Le destinataire calcule M 0 ← eP (S) = eP (dP,S (M)) et vérifie M = M 0 Exemples : PGP, RSA, signature ElGamal/DSA Utilisation : SSL, S-MIME Avantages Inconvénients J.-O. Lachaud (LAMA) non-répudiation d’un message. En théorie, découpage en blocs d’un message + signatures de chaque bloc garantit l’intégrité. Trop coûteux en pratique. INFO006 40 / 183 Fonctions de hachage et empreinte I fonction de hachage et empreinte garantir l’intégrité d’un message M par calcul d’une empreinte hachage : message M hachée en une empreinte E = h(M) de taille fixée vérification intégrité : message reçu M 0 , h(M 0 ) = E ? contraintes : hachage rapide, à sens unique et à collision difficile Exemples : MD5, SHA-1, DSA Utilisation : garantir l’intégrité d’une communication (SSL), de mails (S-MIME), de fichiers ou du système (antivirus) J.-O. Lachaud (LAMA) INFO006 41 / 183 Fonctions de hachage et empreinte II Intégrité et authentification message M d’un expéditeur de clés (P,S) signature de l’empreinte Z ← sigP,S (h(M)) vérification de l’intégrité par le destinataire 1 2 3 Recevoir M 0 , le hacher h(M 0 ), puis vérifier verP (h(M 0 ), Z ) = vrai J.-O. Lachaud (LAMA) INFO006 42 / 183 Authentification I Attaque Man-in-the-Middle (chiffrement asymétrique) Authentification : vérifier identité présumée d’une personne J.-O. Lachaud (LAMA) INFO006 43 / 183 Authentification II Authentification par Autorité de Certification (AC) autorité de certification (AC) : organisme garant (clés PAC , SAC ) légitimer la clé publique PA d’une personne 1 2 3 émetteur A émet son identité IdA et sa clé publique PA à une AC AC vérifie l’identité de A calcule et publie un certificat signé par l’AC : ZA,AC ← sigPAC ,SAC (h(IdA , PA )) authentification de A par l’utilisateur B 1 2 3 4 B reçoit identifiants, clé publique de A0 compare ce qu’il reçoit : h(IdA0 , PA0 ) et l’autorité de certification : verPAC (h(IdA0 , PA0 ), ZA,AC ) et teste l’égalité évite Man-in-the-Middle Mais quid de l’autorité de certification ? J.-O. Lachaud (LAMA) INFO006 44 / 183 Disponibilité I cryptologie : influence indirecte sur la disponibilité Contraintes fortes peu conciliables I I architecture sécurisée transparente : confidentialité sans mot de passe ! QoS implique rapidité des mécanismes de chiffrement et déchiffrement Gains possibles de qualité de service : I en identifiant mieux les sources/demandeurs de ressource J.-O. Lachaud (LAMA) INFO006 45 / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie Définitions et objectifs Cryptographie historique Sûreté d’un chiffrement, Théorie de Shannon, secret parfait Cryptosystèmes à clé secrète partagée Cryptosystèmes à clé publique Hachages et schémas de signatures Certificats, gestion des clés 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 46 / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie Définitions et objectifs Cryptographie historique Sûreté d’un chiffrement, Théorie de Shannon, secret parfait Cryptosystèmes à clé secrète partagée Cryptosystèmes à clé publique Hachages et schémas de signatures Certificats, gestion des clés 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 47 / 183 cryptosystème I J.-O. Lachaud (LAMA) INFO006 48 / 183 cryptosystème II Definition (cryptosystème) Un système cryptographique est un quintuplet (P, C, K, E, D) où 1 P : ensemble des textes clairs possibles, 2 C : ensemble des textes chiffrés possibles, 3 K : espace des clés, ensemble des clés possibles, 4 Pour toute clé K dans K, il existe une règle de chiffrement eK ∈ E et une règle de déchiffrement correspondante dK ∈ D. I I I eK : P → C dK : C → P Pour tout texte clair x ∈ P, dK (eK (x)) = x. Chaque fonction de chiffrement doit être injective. Pourquoi ? Si P = C, chaque fonction de chiffrement est une permutation. J.-O. Lachaud (LAMA) INFO006 49 / 183 Principe de la cryptographie, cryptanalyse I Considérations pratiques I I I les fonctions eK et dK doivent pouvoir se calculer efficacement un opposant observant les messages chiffrés y ne peut déterminer K ou x cryptanalyse : rechercher K à partir de y. Donnera aussi x algorithme public, clé cachée : principe de Kerckhoffs (1883) I I I I la sécurité d’un cryptosystème ne repose que sur le secret de la clé. autres paramètres connus (e et d ) exprimé aussi par Shannon : l’adversaire connaît le système chiffres civils suivent le principe de Kerckhoffs. Militaires utilisent des systèmes secrets. NB : chiffrage A5/1 des mobiles GSM non divulgué au début (1987), divulgué en 1994. le nombre de clés possibles doit être grand. Pourquoi de tels principes pour la sécurité informatique ? J.-O. Lachaud (LAMA) INFO006 50 / 183 Résumé des outils I arithmétique modulo (ex : caractères modulo 26, bits modulo 2) chiffrement eK , déchiffrement dK à clé secrète K chiffrement public eK , déchiffrement privé dK signature privée sigK , vérification publique verK fonction de hachage h publique, empreinte privée sigK (h(x)) J.-O. Lachaud (LAMA) INFO006 51 / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie Définitions et objectifs Cryptographie historique Sûreté d’un chiffrement, Théorie de Shannon, secret parfait Cryptosystèmes à clé secrète partagée Cryptosystèmes à clé publique Hachages et schémas de signatures Certificats, gestion des clés 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 52 / 183 Chiffrements monoalphabétiques I quelques grands noms : Al-Kindi (801-873), Alberti (1404-1472), Vigenère (1523-1596), Porta (1535-1615), Babbage (1792-1872), Kerckhoffs (1835-1903), Turing (1912-1954) chiffre de substitution : remplacer les lettres ou les mots par d’autres symboles On appelle chiffrement monoalphabétique ou substitution simple, un chiffre où chaque lettre est remplacée par une autre lettre ou symbole. chiffre de César (cf. Vies des douze Césars de Suétone) 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 E F G H I J K L M N O P Q R S T U V W X Y Z A B C chiffredecesar FKLIIUHGHFHVDU J.-O. Lachaud (LAMA) INFO006 53 / 183 Chiffrements monoalphabétiques II Si on code A − Z dans Z26 , alors y = x + 3 mod 26 et x = y − 3 mod 26. Definition (Cryptosystème par décalage) Soient P = C = K = Z26 . Pour 0 ≤ K < 26, on définit eK (x) = x + K mod 26, dK (y ) = y − K mod 26. Exercices : I I Quelle est l’espace des clés du chiffre par décalage ? Quel est le texte clair de TMKBM CZXIQ AQJTM MBJCK WTQYC M? J.-O. Lachaud (LAMA) INFO006 54 / 183 Chiffrements monoalphabétiques III Chiffrement par substitution Definition (Cryptosystème par substitution) Soient P = C = Z26 . Soit K l’ensemble des permutations sur les nombres 0, 1, . . . , 25. Pour chaque π ∈ K, on définit eK (x) = π(x), dK (y ) = π −1 (y ). Exercices : I I Quelle est l’espace des clés de ce chiffrement ? Est-ce qu’une recherche exhaustive est envisageable ? Un autre exemple est le chiffrement affine eK (x) = ax + b mod 26, pour des clés K = (a, b) avec pgcd(a, 26) = 1. I I Montrez que résoudre ax + b ≡ y (mod 26) est équivalent à résoudre ax ≡ y (mod 26) Supposez pgcd(a, 26) = d > 1 et montrez que ax ≡ 0(mod 26) a au moins deux solutions. eK peut-il être alors injectif ? J.-O. Lachaud (LAMA) INFO006 55 / 183 Chiffrements monoalphabétiques IV I I I Supposez pgcd(a, 26) = 1 et supposez ∃x1 , x2 tq ax1 ≡ ax2 (mod 26). En déduire 26 divise (x1 − x2 ), ce qui montre que x1 ≡ x2 (mod 26). ek est-il alors injectif ? En déduire que l’équation ax ≡ y (mod 26) admet une solution unique. Le chiffrement affine est bien un cryptosystème. Si a−1 est l’inverse de a, en déduire que dK (y ) ≡ a−1 (y − b)(mod 26) Exercices : I I Montrer que K = (7, 3) induit un chiffrement affine dans Z26 . Quel est sa fonction de déchiffrement ? Combien y a-t-il de clés possibles ? J.-O. Lachaud (LAMA) INFO006 56 / 183 Chiffrements polyalphabétiques I Un chiffrement polyalphabétique peut remplacer une lettre par une autre lettre qui n’est pas toujours la même. Cryptanalyse plus difficile. Definition Chiffrement de Vigenère Soit m > 0 et P = C = K = (Z26 )m . Pour la clé K = (k1 , k2 , . . . , km ), on définit eK (x1 , x2 , . . . , xm ) = (x1 + k1 , x2 + k2 , . . . , xm + km ) dK (y1 , y2 , . . . , ym ) = (y1 − k1 , y2 − k2 , . . . , ym − km ) On note que le message clair est découpé en bloc de m lettres. Les clés comme les messages sont traduits de l’alphabet a-z vers les nombres 0-25. jadoree couterl aradiot outelaj ournee + MUSIQUE MUSIQUE MUSIQUE MUSIQUE MUSIQU = VUVWHYI OIMBULP MLSLYIX AOLMBUN AOJVUY J.-O. Lachaud (LAMA) INFO006 57 / 183 Chiffrements polyalphabétiques II chiffrement par permutation (mélange de m lettres consécutives par une permutation/clé) chiffrement de Hill (multiplication par une matrice m × m inversible dans Z26 ) J.-O. Lachaud (LAMA) INFO006 58 / 183 Cryptanalyse et analyse des fréquences I Cryptanalyse : déterminer la clé K connaissant l’algorithme I I I I texte chiffré connu (y ) : écoute texte clair connu (x,y ) : écoute + message connu (ex : protocole de communication) texte clair choisi (accès à la machine chiffrante émettrice) texte chiffré choisi (accès à la machine déchiffrante réceptrice) Cryptanalyse par analyse des fréquences (Al Kindi) A 08,40 J 0,31 S 08,08 B 01,06 K 0,05 T 07,07 C 03,03 L 06,01 U 05,74 D 04,18 M 02,96 V 01,32 E 17,26 N 07,13 W 0,04 F 01,12 O 05,26 X 0,45 G 01,27 P 03,01 Y 0,30 H 0,92 Q 0,99 Z 0,12 I 07,34 R 06,55 Fig.: Fréquences des lettres en français (non accentué) I lettres (fr) : E, (A, S), (I,N,T,R), LUODCPMVGFBQHXJYZKW J.-O. Lachaud (LAMA) INFO006 59 / 183 Cryptanalyse et analyse des fréquences II I I I I I I I bigrammes (fr) : ES, (DE, LE, EN), (RE, NT, ON, ER, TE), . . . trigrammes (fr) : ENT, LES, (EDE, DES, QUE), AIT, . . . S’applique aux chiffrements mono-alphabétiques Chiffre par décalage en deux trois essais Chiffre affine en quelques essais aussi. Chiffre par substitution si texte suffisamment long. On utilise aussi les bigrammes, trigrammes pour orienter la recherche. http://www.lexique.org/listes J.-O. Lachaud (LAMA) INFO006 60 / 183 Cryptanalyse du chiffre de Vigenère I KQOWE NCMUE YGFFN GUYTS FVJPU KQCTE SXCSE MTFFS JUUNU SWREE YNCTS HNUOC KGLME KOYSS SPNTU ZGMRU KJINM IWCTU JNYTG WEYTR WUXFQ AXYOT GWZGR GKMEE MKJBG APXPL WUUNE DCTVR WRLFN WPNTC JUUQE ECFBD FGHUD GOJBG APYME JQCUS WUUMB FQHTD KQHUI WVBPN SVLPS WXIZA DUXFP ... [Test de Kasiski (1863)] Si m est la longueur de la clé, alors une même partie du texte à δ d’intervalle est chiffrée de la même manière ssi δ ≡ 0(mod m). On cherche des paires de segments de taille suffisante (≥ 3) : δ1 , δ2 , . . . Il est probable que leur pgcd est m ou un multiple de m. On peut vérifier a posteriori cette valeur par l’indice de coïncidence. J.-O. Lachaud (LAMA) INFO006 61 / 183 Cryptanalyse du chiffre de Vigenère II [Source http ://www.apprendre-en-ligne.net] J.-O. Lachaud (LAMA) INFO006 62 / 183 Cryptanalyse du chiffre de Vigenère III J.-O. Lachaud (LAMA) INFO006 63 / 183 Cryptanalyse du chiffre de Vigenère IV Souvent pour s’amuser les hommes d’équipage prennent des albatros, vastes oiseaux des mers, qui suivent, indolents compagnons de voyage, le navire glissant sur les gouffres amers. A peine les ont-ils déposés sur les planches que ces rois de l’azur, maladroits et honteux, laissent piteusement leurs grandes ailes blanches, comme des avirons, traîner à côté d’eux. Ce voyageur ailé, comme il est gauche et veule, lui naguère si beau, qu’il est comique et laid. L’un agace son bec avec un brûle-gueule, l’autre mime en boitant l’infirme qui volait. Le poète est semblable au prince des nuées, qui hante la tempête et se rit de l’archer. Definition (Indice de coïncidence (Friedman 1920)) Soit x = x1 x2 . . . xn une chaîne de n lettres. L’indice de coïncidence de x, noté Ic (x) est la probabilité que deux lettres aléatoires de x soit identique. Espace des tirages X = {{xi , xj }, i 6= j} Card(X ) = n2 Evénement Ea : xi et xj valent la même lettre a Si le nombre d’occurence de a dans x est fa , alors Card(Ea ) = J.-O. Lachaud (LAMA) INFO006 fa 2 64 / 183 Cryptanalyse du chiffre de Vigenère V Probabilité de Ea : Pr[Ea ] = D’où Ic (x) = P25 a=0 Pr[Ea ] = P {xi ,xj }∈Ea Pr[{xi , xj }] = fa 2 × 1 (n2) fa (fa −1) a=0 n(n−1) . P25 En utilisant les tables de fréquences, fa ≈ nPr[a] fr : Ic (x) = 0.074, en : Ic (x) = 0.065 1 2 Si texte aléatoire uniforme : Ic ≈ 26( 26 ) ≈ 0, 038 Invariance de Ic (x) par tout chiffrement mono-alphabétique J.-O. Lachaud (LAMA) INFO006 65 / 183 Cryptanalyse du chiffre de Vigenère VI Attaque du chiffre de Vigenère Soit le texte chiffré y. Pour tout m, on forme y1 = y1 ym+1 y2m+1 . . . y2 = y2 ym+2 y2m+2 . . . ... ym = ym y2m y3m . . . Si m est la longueur de la clé, alors ∀i, 1 ≤ i ≤ m, Ic (yi ) ≈ Ic (langue) Sinon Ic (yi ) ≈ 0, 038 Détermine la longueur de la clé J.-O. Lachaud (LAMA) INFO006 66 / 183 Cryptanalyse du chiffre de Vigenère VII Definition (Indice de coïncidence mutuel) L’indice de coïncidence mutuel de deux chaînes x et x’ de même longueur P fa fa0 n est Ic (x, x’) = 25 a=0 n n . Clé de Vigenère à m connu Soit ei (x) = x + i mod 26 On forme M(i) = Ic (ei (y), y’) y’ est un texte clair (fr) Si y est un texte chiffré par décalage K , alors e26−K (y) est un texte clair (fr) L’indice M(26 − K ) vaut à peu près Ic (fr ). Les autres sont inférieures Calcul de 26 − Kl pour chaque yl : K1 . . . Km est la clé de Vigenère Note historique : machines ENIGMA de la seconde guerre mondiale J.-O. Lachaud (LAMA) INFO006 67 / 183 Cryptanalyse du chiffre de Vigenère VIII Machines à 3 rotors (ou plus) Les rotors codent une substitution des lettres. A chaque frappe, le premier avance. Tous les 26, le deuxième, Tous les 676, le troisième. autres dispositifs : reflecteurs, connecteurs chiffre de Vigenère avec très longue période J.-O. Lachaud (LAMA) INFO006 68 / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie Définitions et objectifs Cryptographie historique Sûreté d’un chiffrement, Théorie de Shannon, secret parfait Cryptosystèmes à clé secrète partagée Cryptosystèmes à clé publique Hachages et schémas de signatures Certificats, gestion des clés 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 69 / 183 Sûreté d’un chiffrement I Sécurité sémantique : un attaquant ne récupère aucune information sur le texte clair à partir du texte chiffré. (attaque passive) Sécurité calculatoire : système sûr au sens de la théorie de la complexité si le meilleur algorithme pour le casser nécessite N opérations, où N est un nombre trop grand. Sécurité prouvée : la sécurité se réduit à un problème réputé difficile. Exemple : le système X est sûr si un entier n donné ne peut être factorisé. J.-O. Lachaud (LAMA) INFO006 70 / 183 Sécurité sémantique ou inconditionnelle I L’éventualité “texte clair choisi = x” a une probabilité a priori Pr[x]. L’éventualité “clé choisie = K ” a une probabilité a priori Pr[K ]. Definition (Secret parfait) La condition du secret parfait est que ∀x ∈ P, y ∈ C, Pr[x|y ] = Pr[x]. Un tel cryptosystème est dit sémantiquement sûr ou de sécurité inconditionnelle. attaquant ne peut attribuer deux clairs à deux chiffrés. cryptosystème soumis à une attaque passive. Pour un message d’une lettre, le chiffrement par décalage assure un secret parfait. P NB : on utilise Pr[Y = y ] = k:y ∈C (k) Pr[K = k]Pr[X = dk (y )], si C (K ) est l’ensemble des textes chiffrés par K . J.-O. Lachaud (LAMA) INFO006 71 / 183 Sécurité sémantique ou inconditionnelle II Theorem (Secret parfait) Si C = P = K, alors ce système assure un secret parfait ssi chaque clé est utilisée avec la même probabilité 1/|K| et ∀x ∈ P, y ∈ C, il existe une clé unique K telle que eK (x) = y . Definition (Chiffre de Vernam (1917) ou à masque jetable) Soit n ≥ 1 et C = P = K = (Z2 )n . Pour tout K ∈ K, on définit eK et dK comme le ou-exclusif de x ∈ P et K . Le Théorème 10 assure le secret parfait de ce cryptosystème, si la clé n’est utilisée qu’une fois et n’est pas plus courte que le message. Utilisée au niveau diplomatique (téléphone rouge). J.-O. Lachaud (LAMA) INFO006 72 / 183 Cryptographie quantique I [C. Bennett, G. Brassard 1984] Cryptographie quantique = seul chiffrement inconditionnellement sûr ? J.-O. Lachaud (LAMA) INFO006 73 / 183 Cryptographie quantique II Création d’un masque jetable par effet quantique 1 une ligne photonique permet de véhiculer un masque jetable 2 ce masque jetable sert de clé secrète à un chiffrement symétrique 3 une ligne normale (espionnable) véhicule les informations chiffrées J.-O. Lachaud (LAMA) INFO006 74 / 183 Cryptographie quantique III bits aléatoires polarisation des photons : →, ↑, %, 2 filtres seulement : + et × Protocole de création du masque jetable 1 A → B (photons) : émission aléatoire de 2N photons selon 4 polarités, réception avec choix aléatoire du filtre 2 B → A (normal) : polarisations choisies par B 3 A → B (normal) : liste des bonnes polarisations ≈ N 4 A → B (normal) : sacrifice de n bits dont la valeur est donnée 5 Pr[Détection espionnage] = 1 − (3/4)n 6 si pas espionné, masque jetable avec ≈ N − n bits, sinon, on refait un masque NB : effectif ! (e.g. SQDefender de SmartQuantum) J.-O. Lachaud (LAMA) INFO006 75 / 183 Théorie de Shannon, Entropie I X est une vad (à nombre fini n de valeurs xi ), de probabilités Pr[X = xi ] = pi . Definition (Entropie) P L’entropie (ou incertitude) d’une vad X est H(X ) = − i pi log2 pi . Mesure l’incertitude sur l’issue avant une observation de X . Approche aussi le nombre de bits moyen pour coder les éléments de X . 0 ≤ H(X ) ≤ log2 n. H(X ) = 0 ssi un seul pi vaut 1 : incertitude minimale H(X ) = log2 n ssi ∀i, pi = 1 n : incertitude maximale Codage de Huffman : la longueur moyenne l du codage d’une chaîne à valeurs dans xi , tirée aléatoirement selon X , est entre H(X ) et H(X ) + 1. J.-O. Lachaud (LAMA) INFO006 76 / 183 Théorie de Shannon, Entropie II Definition (Entropie jointe, conditionnelle) entropie jointeP : H(X , Y ) = − x,yPPr[X = x, Y = y ] log2 Pr[X = x, Y = y ]. H(X |Y = y ) = − x Pr[X = x|Y =Py ] log2 Pr[X = x|Y = y ]. entropie conditionnelle : H(X |Y ) = y Pr[Y = y ]H(X |Y = y ). H(X |Y ) mesure l’incertitude restant sur X sachant l’observation de Y H(X |Y ) ≥ 0 et H(X |X ) = 0 H(X , Y ) = H(X ) + H(Y |X ) = H(Y ) + H(X |Y ) H(X |Y ) ≤ H(X ) avec égalité seulement si X et Y indépendant J.-O. Lachaud (LAMA) INFO006 77 / 183 Théorie de Shannon, Entropie III Corollary Si X est une vad sur P et Y une vad sur C, la condition du secret parfait est que H(X |Y ) = H(X ). Theorem Soit un cryptosystème muni des vads X sur P, K sur K, Y sur C. H(K |Y ) = H(K ) + H(X ) − H(Y ). On développe H(K , X , Y ) = H(Y |K , X ) +H(K , X ) et | {z } 0 H(K , X , Y ) = H(X |K , Y ) +H(K , Y ). | {z } 0 J.-O. Lachaud (LAMA) INFO006 78 / 183 Entropie d’une langue, clés parasites, distance d’unicité I Entropie d’un texte quelconque − 1 x∈a−z 26 P log2 1 26 ≈ 4, 70 Entropie d’une P lettre dans texte anglais h(P) = − x∈a−z Pr[x] log2 Pr[x] ≈ 4, 19 lettres non indépendantes Definition (Entropie d’une langue donnée) Soit un langage naturel L. Son entropie est HL = limn→+∞ La redondance de L : RL = 1 − logHL|P| . H(P n ) n . 2 Pour l’anglais, 1 ≤ HL ≤ 1, 5, redondance 75%. Pour une langue aléatoire, redondance nulle. Definition On appelle clé parasite une clé qui déchiffre un texte chiffré y sous forme d’un message compréhensible, alors que la clé utilisée était autre. J.-O. Lachaud (LAMA) INFO006 79 / 183 Entropie d’une langue, clés parasites, distance d’unicité II WNAJW, codé par décalage a deux clés F(5) et W(22) tels que d22 (WNAJW ) = river et d5 (WNAJW ) = arena : une est parasite. Theorem Le nombre moyen s n de clés parasites sur un texte chiffré de longueur n (n assez grand) vérifie |K| − 1. sn ≥ |P|nRL distance d’unicité n0 : plus petite valeur de n telle que s n ≈ 0 Chiffrement par substitution : |P| = 26, |K| = 26!. Avec RL = 0, 75, n0 ≈ 88, 4/(0, 75 ∗ 4, 7) ≈ 25. Chiffrement de vigenère de taille m : n0 ≈ m/0, 75. On peut donc tenter des attaques par recherche exhaustive sur des messages de longueur ≥ n0 . Si on tombe sur un clair, c’est le bon. J.-O. Lachaud (LAMA) INFO006 80 / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie Définitions et objectifs Cryptographie historique Sûreté d’un chiffrement, Théorie de Shannon, secret parfait Cryptosystèmes à clé secrète partagée Cryptosystèmes à clé publique Hachages et schémas de signatures Certificats, gestion des clés 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 81 / 183 Système cryptographique produit I Soient deux cryptosystèmes S1 = (P, P, K1 , E1 , D1 ) et S2 = (P, P, K2 , E2 , D2 ), tels que P = C. Definition (Système cryptographique produit) Le système cryptographique produit S1 × S2 est le cryptosystème (P, P, K1 × K2 , E, D) et chiffrement e(K1 ,K2 ) (x) = eK2 (eK1 )(x) déchiffrement d(K1 ,K2 ) (x) = dK1 (dK2 )(x) sert à fabriquer des cryptosystèmes plus complexes à partir de cryptosystèmes simples Si S × S × · · · × S, on le note S n (cryptosystème itéré) Si S 2 est équivalent à S, alors S idempotent. Itéré S ne complexifie pas S. J.-O. Lachaud (LAMA) INFO006 82 / 183 Système cryptographique produit II Chiffrement par décalage, par substitution, affine, Hill, Vigenère, permutation sont idempotents ! Montrez que si S1 et S2 sont tels que S1 × S2 est équivalent à S2 × S1 et sont tous deux idempotents, alors S1 × S2 est idempotent. Chiffrements par substitution et par permutation ne commutent pas : AES J.-O. Lachaud (LAMA) INFO006 83 / 183 Algorithme de chiffrement itéré par bloc I chiffrement par bloc à clé secrète K (longueur fixée) systèmes cryptographiques produits (permutation, substitution) chiffrement par Ne étages successifs identiques diversification de K en Ne clés (d’étage) algorithme de chiffrement fixé et public w0 ← x 1 ← g (w 0 , K 1 ) w2 ← g (w 1 , K 2 ) w ... w Ne ← g (w Ne −1 , K Ne ) déchiffrement en sens inverse, g injective J.-O. Lachaud (LAMA) INFO006 84 / 183 Algorithme de chiffrement itéré par bloc II Exemples : I réseaux de substitution/permutation F F I I I substitution par blocs permutation entre bits schéma de Feistel, DES (1976) AES/Rijndael (2001) IDEA (dans PGP), blocs de 64b, clé 128b (⊕, + et · modulo 216 + 1) J.-O. Lachaud (LAMA) INFO006 85 / 183 Data Encryption Standard (DES) I créé par IBM en 1975 pour la NSA, standard en 1976 Caractéristiques : I I I système à clef secrète (clef de 56 bits) chiffrage itéré 16 fois par blocs (64 bits) standard communications gouvernementales non secrètes (USA) J.-O. Lachaud (LAMA) INFO006 86 / 183 Data Encryption Standard (DES) II permutation initiale étage i, (Li , Ri ) = g (Li−1 , R i−1 , K i ) où Li = R i−1 , R i = Li−1 ⊕ f (R i−1 , K i ) clé K diversifiée (56b) en 16 clés (48b) déchiffrement : f n’a même pas besoin d’être inversible ! J.-O. Lachaud (LAMA) INFO006 87 / 183 Data Encryption Standard (DES) III E : Expansion de 32b à 48b on ajoute la clé d’étage Sj : réduction par blocs 6 bits vers 4 bits. on permute le résultat par P J.-O. Lachaud (LAMA) INFO006 88 / 183 Critiques de DES I seules les Sj ne sont pas linéaires espace des clés faibles : 256 ≈ 7, 2 · 1016 attaque à texte clair par force brut 1 2 3 machine de Wiener 1993 : 5e 7 clés/s DES cracker 1998 : 88e 9 clés/s, 1536 puces, 1 clé en 56h DES cracker + réseau mondial (100000 machines) : 1 clé en 22h cryptanalyse différentielle (Biham, Shamir) 1 2 3 4 5 6 7 attaque à texte clair choisi grand nombre de quadruplets (x, x ∗ , y , y ∗ ), avec x ⊕ x ∗ = x 0 fixé fabriquer des différentiels ∆x = x ⊕ x ∗ qui maximise des différentiels ∆y = y ⊕ y ∗ par S-boîte, on analyse le nombre de paires avec ou-exclusif d’entrée égal à x 0 et ou-exclusif de sortie égal à y 0 indépendant de la clé par S-boîte car K s’élimine avec ⊕. on choisit la paire de différentiels la plus fréquente on construit une piste de différentiels en reliant les S-boîtes. J.-O. Lachaud (LAMA) INFO006 89 / 183 Critiques de DES II 8 9 avec beaucoup de couples, on estime quelques bits de la clé, le reste par balayage exhaustif pas effectif pour DES : 258 paires, soit plus que l’attaque exhaustive. J.-O. Lachaud (LAMA) INFO006 90 / 183 Critiques de DES III cryptanalyse linéaire (Matsui 1994) 1 2 3 4 5 6 7 attaque à texte clair choisi analyse les biais entre les probabilités d’avoir une sortie étant donné une entrée. sur une S-boîte, observe Xi1 ⊕ · · · ⊕ Xim ⊕ Yj1 ⊕ · · · ⊕ Yjn si espérance 6= 21 , alors il y a un biais trace ainsi un chemin de l’entrée vers la sortie, dont les variables aléatoires ont un biais (qui dépend de la clé). on chiffre beaucoup de messages, pour retrouver les bits de clé effectif : 243 paires, 40 jours pour génération, 10 jours pour trouver K . Evolution de DES : 3DES. Surchiffrement avec deux clés K1 , K2 . I I I y = eK1 ,K2 (x) = eK1 (eK2 (eK1 (x))). y = dK1 ,K2 (x) = dK1 (dK2 (dK1 (y ))). efficace car DES n’est pas idempotent ! Nouveaux algorithmes (qualifiés de “sûr”) I I IDEA (128bits) AES (ou Rijndael) (128, 192, 256 bits ; 10, 12 ou 14 étages) J.-O. Lachaud (LAMA) INFO006 91 / 183 Critiques de DES IV I caractéristiques : taille de la clé plus grande, boîtes de substitutions obtenues par inversion dans un corps fini plus grand (8bits), mélange de colonnes pour diffuser les pistes différentielles J.-O. Lachaud (LAMA) INFO006 92 / 183 Modes opératoires I Soit K une clé secrète initiale, IV un nombre ECB electronic codebook mode simple chiffrement indépendant des blocs CBC cipher block chaining mode : y0 = IV , yi+1 = eK (yi ⊕ xi+1 ) Chiffrement à clé constante. Texte clair additionné à la sortie précédente. J.-O. Lachaud (LAMA) INFO006 93 / 183 Modes opératoires II original DES ECB DES CBC CFB cipher feedback mode : Initialisation y0 = IV puis yi+1 = eK (yi )⊕xi+1 Chiffrement par addition du chiffrement de la sortie précédente. J.-O. Lachaud (LAMA) INFO006 94 / 183 Modes opératoires III OFB output feedback mode : clés successives indépendantes de l’entrée, z0 = IV , zi+1 = eK (zi ), yi = zi ⊕ xi Suite de clés successives obtenue par chiffrement par clé K . Addition de ces clés au texte clair. Chiffrement du texte indépendant du chiffrement du texte précédent. J.-O. Lachaud (LAMA) INFO006 95 / 183 Modes opératoires IV Exemples d’utilisation formation de Message Authentication Code (MAC). Dans un échange entre deux programmes A et B, les modes CBC ou CFB permettent d’avoir une communication secrète où le chiffrement dépend non seulement d’une clé secrète mais d’un paramètre supplémentaire sur lequel les deux parties se sont mises d’accord (un IV donné). le calcul d’une empreinte MD5 ou SHA d’un fichier suit le principe CBC, où l’empreinte se calcule par une séquence de chiffrement par blocs de 512 bits, par addition de l’empreinte du bloc précédent au texte clair suivant. J.-O. Lachaud (LAMA) INFO006 96 / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie Définitions et objectifs Cryptographie historique Sûreté d’un chiffrement, Théorie de Shannon, secret parfait Cryptosystèmes à clé secrète partagée Cryptosystèmes à clé publique Hachages et schémas de signatures Certificats, gestion des clés 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 97 / 183 Principe des cryptosystèmes à clé publique I Alice Message M y = eK (M) Oscar y −→ Bob (K , K 0 ) M = dK 0 (y) RSA, système El Gamal, Merkle Hellman J.-O. Lachaud (LAMA) INFO006 98 / 183 Principe des cryptosystèmes à clé publique II fonction à sens unique : fonction pour laquelle le problème préimage ne peut être résolu de manière efficace. Problème de la préimage Soient une fonction f : P 7→ C et y ∈ C. Trouver x ∈ P tel que f (x) = y . I I fonctions pas à sens unique : f (x) = a ∗ x + b mod n, f (x) = x −1 mod n fonctions à sens unique : f (x) = ax mod n (logarithme discret) Problème : difficile de déchiffrer ! fonction à sens unique à trappe : la fonction à sens unique devient facile à déchiffrer avec une information secrète supplémentaire clé publique : fonction à sens unique, clé privée : la trappe de cette fonction. NB : chiffrement public ⇒ attaque passive toujours possible avec texte clair choisi. J.-O. Lachaud (LAMA) INFO006 99 / 183 Chiffrement RSA I Definition (Cryptosystème RSA) Soit n = pq, p et q premiers. Soit P = C = Zn . Soit K = {(n, p, q, a, b) tq ab ≡ 1(mod φ(n))}. Pour K = (n, p, q, a, b) 1 (n, b) forment la clé publique. 2 (p, q, a) forment la clé privée. 3 chiffrement : eK (x) = x b mod n 4 déchiffrement : dK (y ) = y a mod n 5 entiers premiers p et q de l’ordre de 10100 6 NB : φ(n) = (p − 1)(q − 1), et pgcd(a, φ(n)) = 1 7 typiquement le message x est un mot de 512 bits (≤ n) J.-O. Lachaud (LAMA) INFO006 100 / 183 Chiffrement RSA II Exemple Bob choisit p = 17, q = 11, n = 187, φ(n) = 160 = 25 × 5. Il prend a = 39 = 3 × 13, b = 119 ≡ a−1 (mod 160) car 39 × 119 = 4641 = 29 × 160 + 1. Alice x = 100 eKbob (x) = x b mod n = 100119 mod 187 = 144 ⇒ J.-O. Lachaud (LAMA) INFO006 Bob Kbob = (n, p, q, a, b) y = 144 reçu dKbob (y ) = y a mod n = 14439 mod 187 = 100 101 / 183 Mise en œuvre de RSA I Génération des paramètres RSA 1 Générer deux grands nombres premiers p et q. 2 n ← pq, et φ(n) ← (p − 1)(q − 1). 3 Choisir b aléatoire (1 < b < φ(n)) avec pgcd(b, φ(n)) = 1 4 a ← b−1 mod φ(n) 5 La clé publique est (n, b) et la clé privée est (p, q, a). J.-O. Lachaud (LAMA) INFO006 102 / 183 Mise en œuvre de RSA II Difficultés pratiques 1 Primalité. Trouver des grands nombres premiers (≈ 512bits) I I plus grand nombre factorisé environ 200 chiffres n ≈ 1024bits ≈ 300 chiffres 2 Calculs rapides. +, −, ×, ÷, pgcd, exp, inverse 3 tout algorithme linéaire en n est trop lent 4 algorithmes polynomiaux en k = log2 n J.-O. Lachaud (LAMA) INFO006 103 / 183 Tests de primalité I Primalité ou non Factorisabilité Primalité : problème de décision 6= Trouver une factorisation Inversement, factorisation de n résoud primalité de n Primalité par tests de √ k n diviseurs en Ω(2 2 ) Crible d’Eratosthène, trop lent, trop de mémoire Definition (Algorithme de Monte-Carlo positif) Algorithme probabiliste qui résout un problème de décision tel que “oui” est toujours correct et si “non” peut être incorrect avec probabilité max . J.-O. Lachaud (LAMA) INFO006 104 / 183 Tests de primalité II Test de Miller Rabin J.-O. Lachaud (LAMA) INFO006 105 / 183 Tests de primalité III Miller-Rabin : Monte-Carlo positif pour primalité avec = 1/4 probablement premier composite n premier 1 0 1 3 n composite 4 4 Algorithme peut répondre “premier” alors que le nombre est en fait composite ⇒ a est un menteur Algorithme ne peut répondre “composite” si le nombre est premier Pour n composite, moins d’un des menteurs 1 4 des valeurs a entre 1 et n − 1 sont On appelle plusieurs fois l’algorithme pour être de plus en plus sûr On calcule I I I I a : nombre n de taille donnée est composite b : l’algorithme se trompe m fois en disant n premier 353 Pr[a|b] ≤ 353+2 2m+1 , pour n de 512 bits Probabilité de se tromper 44 fois est 2−80 . J.-O. Lachaud (LAMA) INFO006 106 / 183 Tests de primalité IV Autres test : Test de Solovay-Strassen, basé sur les symboles de Legendre et Jacobi J.-O. Lachaud (LAMA) INFO006 107 / 183 Calculs rapides sur grands entiers I k = log2 n addition, soustraction I naïf. Somme bit à bit plus retenue. O(k) multiplication, division O(k 2 ) I naïf. On pose k sommes bit à bit plus retenue. O(k 2 ) I Karatsuba. O(k log 2 ) = O(k 1.584 ) log 3 (a×2m +b)(c ×2m +d ) = ac ×22m +(ac +bd −(a−b)(c −d ))×2m +bd I I Toom Cook O(k (1+) ) Transformée de Fourier Rapide, Fühler, proche de O(k log k) J.-O. Lachaud (LAMA) INFO006 108 / 183 Calculs rapides sur grands entiers II pgcd O(k 3 ) I Algorithme d’Euclide. O(k 3 ) (en fait O(k 2 )) int pgcd(int m, int n) { while ( n != 0 ) { int r = m mod n; m = n; n = r; } return m; } J.-O. Lachaud (LAMA) INFO006 109 / 183 Calculs rapides sur grands entiers III inverse modulo n I Algorithme d’Euclide étendu. O(k 3 ) (en fait O(k 2 )) Fct EuclideEtendu( a, b : entier ) { r[0] = a; r[1] = b; s[0] = 1; s[1] = 0; t[0] = 0; t[1] = 1; q = r[0] div r[1]; r[2] = r[0] - q*r[1]; i = 2; Tant que r[i] > 0 s[i] = s[i-2] - q*s[i-1]; t[i] = t[i-2] - q*t[i-1]; q = r[i-1] div r[i]; i = i+1; r[i] = r[i-2] - q*r[i-1]; Fin tant que Retourner r[i-1],s[i-1],t[i-1] // r[i-1]=pgcd(a,b) // et a*s[i-1]+b*t[i-1]=r[i-1] } J.-O. Lachaud (LAMA) INFO006 pgcd(120, 23) ? mod 120 ? et 23−1 r = s ∗a+ t 120 1 120 0 23 0 120 1 5 1 120 -5 3 -4 120 21 2 5 120 -26 1 -9 120 47 Montrez ∀i, ri = asi + bti ∗b 23 23 23 23 23 23 110 / 183 Calculs rapides sur grands entiers IV Exp. modulaire rapide dePc. O(log2 c × k 2 ) P i i ci c = i ci 2i alors bc = b i ci 2 = Πi (b2 ) , ssi k−1 bc = (b)c0 · (b2 )c1 · (b4 )c2 · · · · · ·(b(2 ) )ck−1 Fonction Exp( b, c, n : entier ) : entier r = 1; Tant que c > 0 si c & 1 > 0 r = (r*b) mod n; c = c >> 1; b = (b*b) mod n; Fin tant que retourner r; RSA peut donc être mis en œuvre efficacement. J.-O. Lachaud (LAMA) INFO006 111 / 183 Sécurité de RSA I Attaques possibles sur RSA Factorisation de n I I I Si n factorisé en pq par Oscar, alors φ(n) se calcule immédiatement, et donc l’inverse de b se calcule√par Euclide étendu algorithme naïf trop lent O( n) Algorithme p − 1 de Pollard et B-friabilité. Un nombre x est B-friable si ses facteurs sont inférieurs à B. Fct Fact_Pollard_p-1( n, B ) a = 2^(B!) mod n; d = pgcd( a-1, n ); Si 1<d<n alors retourner d; sinon Echec; I ⇒ Bien choisir ses p et q non B-friables ! Algorithme ρ de Pollard O(n1/4 ) : on cherche une collision x 6= x 0 tq le pgcd x − x 0 et n est différent de 1. si x ≡ x 0 (mod p) alors p ≤ pgcd(x − x 0 , n) < n J.-O. Lachaud (LAMA) INFO006 112 / 183 Sécurité de RSA II I I I I Algorithme de Dixon x 2 ≡ y 2 (mod n) alors (x − y ) ou (x + y ) peuvent être des facteurs de n√ crible quadratique O(e (1+o(1)) √ln n ln ln n ) courbes elliptiques O(e (1+o(1)) 2 ln p ln ln p ) 1/3 2/3 crible algébrique O(e (1,92+o(1))(ln n) (ln ln n) ) Attaque àφ(n) connu n = pq Résoudre φ(n) = (p − 1)(q − 1) Ou p 2 − (n − φ(n) + 1)p + n = 0 Les deux racines sont p et q Attaque à a connu. On peut trouver p,q J.-O. Lachaud (LAMA) INFO006 113 / 183 Sécurité de RSA III 1/4 Attaque de Wiener. Trouve a dès que a < n 3 et q < p < 2q ab ≡ 1(mod φ(n)) ⇔ ∃t, ab − tφ(n) = 1 √ De plus, pq > q 2 , d’où 0 < n − φ(n) < 3 n b n = √ D’où n − at < a3t n Comme t < a et hypothèse 3t < 3a < n1/4 , bn − at < an11/4 < 3a12 Et donc t/a est une réduite du dvp en fraction continue de b/n. Moralité Choisir n grand ≈ 21024 Choisir p et q, ni trop proches, ni trop éloignés Rejeter les p et q tels que p − 1 et q − 1 ont des petits facteurs Choisir a pas trop petit devant n J.-O. Lachaud (LAMA) INFO006 114 / 183 OAEP – Système à clé publique sûr I Definition OAEP / Optimal Asymmetric Encryption Padding [Bellare, Rogaway 94] standard OAEP / IEEE P1363 P = C = {0, 1}m , k0 = k − m f un chiffrement publique sur {0, 1}k , f −1 son déchiffrement privé. G : {0, 1}k0 → {0, 1}m et H : {0, 1}m → {0, 1}k0 fonctions aléatoires clé K = (f , f −1 , G , H), r aléatoire sur {0, 1}k0 eK (x) = f (x ⊕ G (r )kr ⊕ H(x ⊕ G (r ))) f −1 (y ) = x1 kx2 , avec x1 ∈ {0, 1}m , x2 ∈ {0, 1}k0 puis r = x2 ⊕ H(x1 ) et dK (y ) = G (r ) ⊕ x1 Lorsque f et f −1 sont le chiffrement RSA, on parle de RSA-OAEP. Chaque clair a 2k0 chiffrement distincts. J.-O. Lachaud (LAMA) INFO006 115 / 183 OAEP – Système à clé publique sûr II Theorem RSA-OAEP est sémantiquement sûr ssi les fonctions aléatoires G et H sont des oracles aléatoires. G est un oracle aléatoire si le fait d’avoir fait déjà N calculs de G n’augmente pas la probabilité Pr[G (x) = y ] pour tout x non déjà calculé et y. OAEP : prétraitement à RSA peu coûteux : de l’ordre de 128 bits supplémentaires G et H sont par exemple SHA-1 théoriquement beaucoup plus sûr car r induit un “bruit” considérable J.-O. Lachaud (LAMA) INFO006 116 / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie Définitions et objectifs Cryptographie historique Sûreté d’un chiffrement, Théorie de Shannon, secret parfait Cryptosystèmes à clé secrète partagée Cryptosystèmes à clé publique Hachages et schémas de signatures Certificats, gestion des clés 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 117 / 183 Fonction de hachage et intégrité I 1 Fonction de hachage h simple I I I I 2 donnée x stockée/transmise dans/par un endroit peu sûr fonction h transformant x en un nombre court y (empreinte, condensé, digest) y stocké/transmis dans/par un endroit sûr intégrité : comparaison h(x) = y ? famille de fonction de hachage hK I I I I I I paramétrée par clé secrète K donnée x et y = hK (x) stockée/transmise dans/par un endroit peu sûr intégrité : comparaison hK (x) = y ? code d’authentification de message ou MAC authentifie aussi l’émetteur fonction de hachage h = famille à une seule clé possible J.-O. Lachaud (LAMA) INFO006 118 / 183 Sécurité des fonctions de hachage I Soient une fonction h : P 7→ C. M = |C| Trois problèmes doivent être difficiles à résoudre Problème de la préimage Soit y ∈ C. Trouver x ∈ P tel que h(x) = y . Problème de la seconde préimage Soit x ∈ P. Trouver x 0 ∈ P tel que x 0 6= x et h(x 0 ) = h(x). Problème de la collision Trouver x, x 0 ∈ P tel que x 0 6= x et h(x 0 ) = h(x). Definition (Oracle aléatoire / hachage idéal) Le fait d’avoir fait déjà N calculs de h n’augmente pas la probabilité Pr[h(x) = y ] = 1/M pour tout x non déjà calculé et y . J.-O. Lachaud (LAMA) INFO006 119 / 183 Sécurité des fonctions de hachage II Algorithme PreImage sur h : X → Y Fonction Trouver_PreImage(h,y,q) Choisir un X0 sous-ensemble de X, |X0|=q Pour tout x dans X0 Faire Si h(x)==y alors retourner x; retourner ‘‘Echec’’ En moyenne, Pr[Succès] = 1 − (1 − 1/M)q Algorithme 2ndPreImage Fonction 2ndPreImage(h,x,q) y=h(x) Choisir un X0 sous-ensemble de X, |X0|=q-1 Pour tout x dans X0 Faire Si h(x)==y alors retourner x; retourner ‘‘Echec’’ J.-O. Lachaud (LAMA) INFO006 120 / 183 Sécurité des fonctions de hachage III En moyenne, Pr[Succès] = 1 − (1 − 1/M)q−1 Algorithme Collision Fonction Collision(h,q) Choisir un X0 sous-ensemble de X, |X0|=q Pour tout x dans X0 Faire y_x = h(x) Si y_x == y_x’ pour x != x’ alors retourner (x,x’) retourner ‘‘Echec’’ M−q+1 M−2 En moyenne, Pr[Succès] = 1 − ( M−1 ) M )( M ) . . . ( M √ Nb : Paradoxe des anniversaires. Pour = 0.5, q ≈ 1.17 M Borne minimale sur la taille minimale de l’empreinte. Il faut observer √ M J.-O. Lachaud (LAMA) INFO006 121 / 183 Construction de Merkle-Damgård I MD5, SHA-0, SHA-1, SHAx, . . . , RIPEMD Fonction de hachage itérée, avec zip : {0, 1}m+t → {0, 1}m 1 2 Soit x, |x| > m + t + 1. On construit y tq |y | ≡ 0(mod t) y = y1 ky2 k · · · kyr y souvent construit par bourrage de x : y = xkpad (x) Soit IV public de longueur m z0 ← IV z1 ← zip(z0 ky1 ) z2 ← zip(z1 ky2 ) ... zr 3 ← zip(zr −1 kyr ). Parfois g : {0, 1}m → {0, 1}l publique, alors h(x) = g (zr ) J.-O. Lachaud (LAMA) INFO006 122 / 183 Construction de Merkle-Damgård II Construction de Merkle-Damgård 1 2 3 4 On divise x en k blocs de t − 1, le dernier complété par des 0. On rajoute un bloc donnant le nombre de zero rajouté. z1 ← zip(0m+1 ky1 ) Pour i de 1 à k, zi+1 ← zip(zi k1kyi+1 ) Retourner h(x) = zk+1 Theorem si zip résistante aux collisions, t ≥ 2 alors h est résistante aux collisions. Conclusion Il suffit donc de définir une fonction de compression de {0, 1}m+t → {0, 1}m résistante aux collisions pour avoir une fonction de hachage résistante aux collisions. J.-O. Lachaud (LAMA) INFO006 123 / 183 Un exemple : SHA-1 I Empreinte ou condensat de 160 bits Bourrage SHA : message M découpé en blocs de 512 bits M1 . . . Mk−1 Mk 10 · · · 0 l (M) Compression 512 bits vers 160 bits 16 mots de Mi Wt = ROTL1(Wt−3 ⊕ Wt−8 ⊕ Wt−14 ⊕ Wt−16 ) W0 · · · W15 W16 · · · · · · · · · · · · · · · W79 I 80 itérations du calcul I Les fonctions Ft (B, C , D) sont de la forme 0 ≤ t ≤ 19 (B ∧ C ) ∨ ((¬B) ∨ D) 20 ≤ t ≤ 39 B ⊕ C ⊕ D 40 ≤ t ≤ 59 (B ∧ C ) ∨ (B ∧ D) ∨ (C ∧ D) 60 ≤ t ≤ 79 B ⊕ C ⊕ D K constantes J.-O. Lachaud (LAMA) I i INFO006 124 / 183 Un exemple : SHA-1 II chaque condensat de bloc est l’initialisation du bloc suivant J.-O. Lachaud (LAMA) INFO006 125 / 183 Hachage et génération aléatoire I bonnes fonctions de hachage = bons générateurs aléatoires $$> let x=0; \ while test $x -le 9; do \ echo $x | sha1; let x=x+1; \ done 09d2af8dd22201dd8d48e5dcfcaed281ff9422c7 e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e 7448d8798a4380162d4b56f9b452e2f6f9e24e7a a3db5c13ff90a36963278c6a39e4ee3c22e2a436 9c6b057a2b9d96a4067a749ee3b3b0158d390cf1 5d9474c0309b7ca09a182d888f73b37a8fe1362c ccf271b7830882da1791852baeca1737fcbe4b90 d3964f9dad9f60363c81b688324d95b4ec7c8038 136571b41aa14adc10c5f3c987d43c02c8f5d498 J.-O. Lachaud (LAMA) INFO006 126 / 183 Hachage et génération aléatoire II $> let x=1; let y=0; \ while test $x -le 10; do \ y=‘echo $y | sha1‘; echo $y; let x=x+1; \ done 09d2af8dd22201dd8d48e5dcfcaed281ff9422c7 00f7c7d8a69f4228724ce25e4993aa87b789433b 1e4dab666517568b861e1ebd3749405916e48506 46f4d6c2a816fb7dc6a7686dbb3d7f1f27ee5d12 1d9c4099519d4feea51d97bc33a265be5c41f1a7 7d5c9566dd41309b057f4dee18dbe65942eb2ef3 3aa4393fd13818fa130441b16303ed6ab6dbd94d f9057849c84eadd1e33b80b73b8461c8ec017434 b052986d891ae86a7606f5cf195b03961b1411c8 bb5ab12bf139a43f44ec2f1a1c679a11fb34cd46 les fonctions de hachage se conduisent statistiquement comme des générateurs aléatoires J.-O. Lachaud (LAMA) INFO006 127 / 183 Schémas de signature I Signature numérique 6= signature conventionnelle I I I pas de lien physique message/signature ⇒ “collage” vérification beaucoup plus sûre un document électronique signé = ∞ copies signées ⇒ dater les documents/signatures Objectifs : authentification, non-répudiation, intégrité Definition (Schéma de signature) 2 Familles de fonctions paramétrées par une clé K I signer sigK (privé) : S ← sigK (M) où M est un message ou un défi I vérifier verK (public) : verK : (M, S) 7→ {vrai, faux} Il faut I non-répudiation : s’assurer qu’il est difficile de forger une fausse signature sur un document (image et préimage) J.-O. Lachaud (LAMA) INFO006 128 / 183 Schémas de signature II I I I non-répudiation : vérifier qu’on ne peut créer deux documents ayant même signature valide (collision) intégrité : vérifier qu’on ne peut falsifier les données signées (seconde préimage) authentification : s’assurer que personne numérique et personne physique sont les mêmes (certificats) J.-O. Lachaud (LAMA) INFO006 129 / 183 Quelques schémas de signature I Signature RSA 1 2 3 4 Alice signe M, sa clé K = (n, p, q, a, b) signer S = sigK (M) = dK (M) = M a mod n Bob vérifie que S est la signature de M avec clé publique d’Alice vérifier verK (M, S) = (eK (S) == M) = ((S b mod n) == M) Défauts 1 2 Tout le monde peut forger une signature d’Alice ! Signature déterministe ⇒ favorise les collisions J.-O. Lachaud (LAMA) INFO006 130 / 183 Quelques schémas de signature II Signature ElGamal 1 2 3 Alice signe M, sa clé K = (p, α, β, a), β ≡ αa (mod p) Alice tire k au hasard dans Z?p−1 signer S = sigK (M, k) = (γ, δ), avec F F 4 5 γ = αk mod p, δ = (M − aγ)k −1 mod (p − 1) Bob vérifie que S = (γ, δ) est la signature de M avec clé publique d’Alice vérifier verK (M, (γ, δ)) = (β γ γ δ ≡ αM (mod p)). Défauts 1 2 3 On peut fabriquer de faux couples (message, fausse signature) l’entier aléatoire ne doit pas être révélé l’entier aléatoire ne doit pas être utilisé plusieurs fois Néanmoins pas d’attaque à message choisi J.-O. Lachaud (LAMA) INFO006 131 / 183 Quelques schémas de signature III Principes généraux de signature On ne signe qu’une empreinte I I car signature longue en temps et mémoire et rend difficile la forge de signature Toujours signer avant le chiffrement Mélange intégrité, et non-répudiation, J.-O. Lachaud (LAMA) INFO006 132 / 183 Quelques schémas de signature IV Communication d’un message chiffré sous gpg J.-O. Lachaud (LAMA) INFO006 133 / 183 Quelques schémas de signature V Communication d’un message chiffré et signé sous gpg J.-O. Lachaud (LAMA) INFO006 134 / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie Définitions et objectifs Cryptographie historique Sûreté d’un chiffrement, Théorie de Shannon, secret parfait Cryptosystèmes à clé secrète partagée Cryptosystèmes à clé publique Hachages et schémas de signatures Certificats, gestion des clés 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 135 / 183 Certificats et authentification I S’assurer que personne physique et numérique sont les mêmes Principe : infrastructure de gestion de clés (IGC, PKI) qui I I I I I I stockent les clés publiques garantissent la conformité clé/personne gère la durée de vie de la clé, sa révocation autorité de certification : signe les demandes de certificats et les révocations autorité d’enregistrement : génère certificats, vérifie identité/unicité autorité de dépôt : stocke les certificats et les listes de révocations certificats X509, PGP/OpenPGP/GnuPG AC : Thawte, Certinomis, Baltimore, Certplus, Entrust.net, Verisign, GlobalSign, Cybertrust J.-O. Lachaud (LAMA) INFO006 136 / 183 Certificats et authentification II Structure d’un certificat * Version * Numéro de série * Algorithme de signature du certificat * Signataire du certificat * Validité (dates limite) o Pas avant o Pas après * Détenteur du certificat * Informations sur la clé publique o Algorithme de la clé publique o Clé publique * Identifiant unique du signataire (Facultatif) * Identifiant unique du détenteur du certificat (Facultatif) * Extensions (Facultatif) J.-O. Lachaud (LAMA) INFO006 137 / 183 Cas d’étude : GnuPG I PGP [Zimmermann 1991], OpenPGP (RFC4880) Implémentation Gnu Privacy Guard (GnuPG) Chiffrement symétrique/asymétrique Signatures Certificats, Certification par réseau social S’associe bien avec toute application de messagerie (e.g. thunderbird) J.-O. Lachaud (LAMA) INFO006 138 / 183 Cas d’étude : GnuPG II 1 Informations sur gpg $ gpg –version ... Home: ~/.gnupg Algorithmes supportés: Clé publique: RSA, RSA-E, RSA-S, ELG-E, DSA Chiffrement: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH Hachage: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224 Compression: Non-compressé, ZIP, ZLIB, BZIP2 J.-O. Lachaud (LAMA) INFO006 139 / 183 Cas d’étude : GnuPG III 2 Créer sa clé publique $ gpg –gen-key ... Sélectionnez le type de clé désiré: (1) DSA et Elgamal (par défaut) (2) DSA (signature seule) (5) RSA (signature seule) Votre choix ? 1 La paire de clés DSA fera 1024 bits. les clés ELG-E peuvent faire entre 1024 et 4096 bits de longueur. ... Vous avez besoin d’un nom d’utilisateur pour identifier votre clé; le programme le construit à partir du nom réel, d’un commentaire et d’une adresse e-mail de cette manière: Heinrich Heine (Der Dichter) <[email protected]> Nom réel : Jean Bon Adresse e-mail : [email protected] Commentaire : Comme du bon pain J.-O. Lachaud (LAMA) INFO006 140 / 183 Cas d’étude : GnuPG IV Vous avez sélectionné ce nom d’utilisateur: "Jean Bon (Comme du bon pain) <[email protected]>" Un grand nombre d’octets aléatoires doit être généré. ... gpg: clé AAF48B9E marquée comme ayant une confiance ultime. les clés publique et secrète ont été créées et signées. gpg: vérifier la base de confiance gpg: 3 marginale(s) nécessaires, 1 complète(s) nécessaires, modèle de confiance PGP gpg: profondeur: 0 valide: 2 signé: 0 confiance: 0-. 0g. 0n. 0m. 0f. 2u gpg: la prochaine vérification de la base de confiance aura lieu le 2013-02-04 pub 1024D/AAF48B9E 2008-02-06 Empreinte de la clé = 8B59 5F66 F3E0 28F3 15FF 20DF 10BC 6865 AAF4 8B9E uid Jean Bon (Comme du bon pain) <[email protected]> sub 2048g/85B0C9A7 2008-02-06 clé publique de Jean Bon (8 derniers octets) : AAF48B9E 3 Voir les clés que l’on connait $ gpg –list-keys J.-O. Lachaud (LAMA) INFO006 141 / 183 Cas d’étude : GnuPG V /home/lachaud/.gnupg/pubring.gpg -------------------------------pub 1024D/C294834D 2008-02-06 [expire: 2013-02-04] uid Jacques-Olivier Lachaud <jacques-olivier.lachaud@univ-sav sub 2048g/31BC7EF2 2008-02-06 [expire: 2013-02-04] pub uid sub 1024D/FE3AAF25 2007-03-15 [expire: 2008-10-07] David Coeurjolly <[email protected]> 2048g/DF839ABF 2007-03-15 [expire: 2008-03-19] ... pub uid sub 4 1024D/AAF48B9E 2008-02-06 Jean Bon (Comme du bon pain) <[email protected]> 2048g/85B0C9A7 2008-02-06 Créer un certificat de révocation $ gpg –gen-revoke bon J.-O. Lachaud (LAMA) INFO006 142 / 183 Cas d’étude : GnuPG VI sec 1024D/AAF48B9E 2008-02-06 Jean Bon (Comme du bon pain) <[email protected]> Générer un certificat de révocation pour cette clé ? (o/N) o choisissez la cause de la révocation: 0 = Aucune raison spécifiée 1 = La clé a été compromise ... Vous avez besoin d’une phrase de passe pour déverrouiller la clé secrète pour l’utilisateur: Jean Bon (Comme du bon pain) <[email protected]> *************** clé de 1024 bits DSA, ID AAF48B9E, créée le 2008-02-06 sortie avec armure ASCII forcée. Certificat de révocation créé. Déplacez-le dans un support que vous pouvez cacher ; si Mallory a accès à ce certificat il peut l’utiliser pour rendre votre clé inutilisable. Une bonne idée consiste à imprimer ce certificat puis à le stocker ailleurs, au cas où le support devient illisible. Mais attention : le système d’impression de votre machine pourrait stocker ces données et les rendre accessibles à d’autres personnes ! J.-O. Lachaud (LAMA) INFO006 143 / 183 Cas d’étude : GnuPG VII -----BEGIN PGP PUBLIC KEY BLOCK----Version: GnuPG v1.4.6 (GNU/Linux) Comment: A revocation certificate should follow iFsEIBECABsFAkeq4MIUHQJNb3QgZGUgcGFzc2UgcGVyZHUACgkQELxoZar0i548 FwCgoHbQzsn9/CKYcbJPe9ooWvCnoGEAnjrXsgyUQQsAW2d7oupgr7VQ63VG =utF/ -----END PGP PUBLIC KEY BLOCK----- J.-O. Lachaud (LAMA) INFO006 144 / 183 Cas d’étude : GnuPG VIII 5 S’enregistrer auprès d’un serveur de clés $ gpg –keyserver pool.sks-keyservers.net –send-keys AAF48B9E gpg: envoi de la clé AAF48B9E au serveur hkp pool.sks-keyservers.net 6 Quelques public key servers J.-O. Lachaud (LAMA) INFO006 145 / 183 Cas d’étude : GnuPG IX pool.sks-keyservers.net pgp.mit.edu pgp.nic.ad.jp keyserver.veridis.com pgp.uni-mainz.de J.-O. Lachaud (LAMA) INFO006 146 / 183 Cas d’étude : GnuPG X 7 Chercher une clé sur un serveur $ gpg –keyserver pool.sks-keyservers.net –search-keys sarkozy (1) Csongor Sarkozy <[email protected]> 1024 bit DSA key C3507937, créé: 1999-10-10 Keys 1-1 of 1 for "sarkozy". Entrez le(s) nombre(s), S)uivant, ou Q)uitter > gpg: requête de la clé C3507937 du serveur hkp pool.sks-keyservers.net gpg: clé C3507937: clé publique « Csongor Sarkozy <[email protected]> » import gpg: 3 marginale(s) nécessaires, 1 complète(s) nécessaires, modèle de confiance PGP gpg: profondeur: 0 valide: 1 signé: 0 confiance: 0-. 0g. 0n. 0m. 0f. 1u gpg: la prochaine vérification de la base de confiance aura lieu le 2013-02-04 gpg: Quantité totale traitée: 1 gpg: importée: 1 J.-O. Lachaud (LAMA) INFO006 147 / 183 Cas d’étude : GnuPG XI 8 Chiffrer un message $ gpg -a –encrypt -r bon message.txt $ cat message.txt.asc -----BEGIN PGP MESSAGE----Version: GnuPG v1.4.6 (GNU/Linux) hQIOA+DxU5+FsMmnEAf/ZDPOVmVlsfTCi578OwWz+uxxexTBYQxmBDBzDob7B+8P MWAMC6S1GYBfiwagch+GFCtZQwiBkUT4USJ8mV1XB4ScuCWJAsmoP1wV+p07j7n/ 3WaiHglmWZKb0cPJe9zPP+XFDsWX8KNafuBtlUq3KRVb68giohlDDbb3yT/+JYQG 7Lq1k71czSlebKrtk1Hf5vw/mpCEN3Ig/JR8jGlHcGaR3n/RHLykvs8s0dSiyOa9 TfZ1snn3LQFWGauRm3Ylbw6dp9NPXTVpJHxCNZzFzTEllXKuwqP8iSvP7XCIaJzI ZXdJl36GL+iEPPOgzl2LqIrCVeLrRLVRTiQ6/JVBOwf/TxSV+ZrUlw+7fXGIAPb8 8eqleP4OLDZ+9NG2jaSZDyQxuycg4aOlvsFWP4mraIHD0TItulLkz+171hl96I6X rK4ezOjdPSLN13dQjf2+PP7dti/hylxgOfOLiMqI7MN524JxA+g/BCcwcY08FB+P lF8lIeyZvhrPweC8b31Cb2mKQA6w10+CbUAEtugJ3H3tx0vuW0W20d45qKcfy06r CBd8+oBBYMvw6Lmr3u9iNd46pC5ESHKv7jPn92Th9/ML2EEz3UV8gjtKUMlOCgD3 Cbk7vhmORxtsPX8Zc52zSa7D3Ma93PObb1a04YdP6JuR60/8/dcTgwXs6bbh6X4P uNJ7AY8xk2Nu8T1SBdkbqRYFj7PrL/uLg6q7th6Y6KxGkahTESfGQ+wZuRwGwSaH 2I/IRgDBQ0lR8hxKUUGsE876RLfgfb6eQOdMr87G8pCIZPo9cZJKZ5D7K8J4IMlx KwVAg3rG+Ih4qZ+RfReh7jupcgvOkouRwot+lSau =Q3L9 -----END PGP MESSAGE----J.-O. Lachaud (LAMA) INFO006 148 / 183 Cas d’étude : GnuPG XII J.-O. Lachaud (LAMA) INFO006 149 / 183 Cas d’étude : GnuPG XIII 9 Déchiffrer un message $ gpg message.txt.asc Vous avez besoin d’une phrase de passe pour déverrouiller la clé secrète pour l’utilisateur: Jean Bon (Comme du bon pain) <[email protected]> clé de 2048 bits ELG-E, ID 85B0C9A7, créée le 2008-02-06 (ID clé principale AA gpg: chiffré avec une clé de 2048 bits ELG-E, ID 85B0C9A7, créée le 2008-02-06 Jean Bon (Comme du bon pain) <[email protected]> ***************** $ cat message.txt Ceci est mon message. --JOL J.-O. Lachaud (LAMA) INFO006 150 / 183 Cas d’étude : GnuPG XIV 10 Signer le message message.txt $ gpg -a –detach-sign -u bon message.txt Vous avez besoin d’une phrase de passe pour déverrouiller la clé secrète pour l’utilisateur: Jean Bon (Comme du bon pain) <[email protected]> clé de 1024 bits DSA, ID AAF48B9E, créée le 2008-02-06 ***************** $ cat message.txt.asc -----BEGIN PGP SIGNATURE----Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQBHqy2TELxoZar0i54RAsC3AKCyGjvMsOHw/lZ4WjQD2j/MRpiRtACdHe69 EMjIUL4ZYw47NfkXVkADqlw= =KJCN -----END PGP SIGNATURE----- J.-O. Lachaud (LAMA) INFO006 151 / 183 Cas d’étude : GnuPG XV 11 Vérifier que message.txt.asc est bien la signature de message.txt $ gpg –verify message.txt.asc message.txt gpg: Signature faite le jeu 07 fév 2008 17:10:59 CET avec la clé DSA ID AAF48B gpg: Bonne signature de Jean Bon (Comme du bon pain) <[email protected]> $ gpg –verify message.txt.asc message2.txt gpg: Signature faite le jeu 07 fév 2008 17:10:59 CET avec la clé DSA ID AAF48B gpg: MAUVAISE signature de Jean Bon (Comme du bon pain) <[email protected]> J.-O. Lachaud (LAMA) INFO006 152 / 183 Cas d’étude : GnuPG XVI 12 Chiffrer pour lachaud et signer par Bon le message message.txt $ gpg -a –sign -u bon –encrypt -r lachaud message.txt Vous avez besoin d’une phrase de passe pour déverrouiller la clé secrète pour l’utilisateur: Jean Bon (Comme du bon pain) <[email protected]> clé de 1024 bits DSA, ID AAF48B9E, créée le 2008-02-06 ***************** On note que Jean Bon ne peut pas déchiffrer son propre message, et que seul JO Lachaud peut le faire : $ gpg message.txt.asc Vous avez besoin d’une phrase de passe pour déverrouiller la clé secrète pour l’utilisateur: Jacques-Olivier Lachaud <jacques-olivier.lacha clé de 2048 bits ELG-E, ID 31BC7EF2, créée le 2008-02-06 (ID clé principale C2 ***************** gpg: chiffré avec une clé de 2048 bits ELG-E, ID 31BC7EF2, créée le 2008-02-06 Jacques-Olivier Lachaud <[email protected]> gpg: Signature faite le jeu 07 fév 2008 17:41:24 CET avec la clé DSA ID AAF48B gpg: Bonne signature de Jean Bon (Comme du bon pain) <[email protected]> J.-O. Lachaud (LAMA) INFO006 153 / 183 Cas d’étude : GnuPG XVII 13 Lorsque votre clé ne sert plus, on la révoque en utilisant le certificat de révocation $ gpg –import -----BEGIN PGP PUBLIC KEY BLOCK----Version: GnuPG v1.4.6 (GNU/Linux) Comment: A revocation certificate should follow iFsEIBECABsFAkeq4MIUHQJNb3QgZGUgcGFzc2UgcGVyZHUACgkQELxoZar0i548 FwCgoHbQzsn9/CKYcbJPe9ooWvCnoGEAnjrXsgyUQQsAW2d7oupgr7VQ63VG =utF/ -----END PGP PUBLIC KEY BLOCK----gpg: clé AAF48B9E: Jean Bon (Comme du bon pain) <[email protected]> certificat de révocation importé $ gpg –list-keys ... pub uid 1024D/AAF48B9E 2008-02-06 [revoqué: 2008-02-07] Jean Bon (Comme du bon pain) <[email protected]> J.-O. Lachaud (LAMA) INFO006 154 / 183 Cas d’étude : GnuPG XVIII $ gpg –keyserver pool.sks-keyservers.net –send-keys AAF48B9E gpg: envoi de la clé AAF48B9E au serveur hkp pool.sks-keyservers.net $ gpg –delete-secret-keys bon $ gpg –delete-keys bon J.-O. Lachaud (LAMA) INFO006 155 / 183 Cas d’étude : GnuPG XIX J.-O. Lachaud (LAMA) INFO006 156 / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 157 / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie Arithmétiques modulo Théorème de Fermat ; Algorithme(s) d’Euclide Probabilités discrètes 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 158 / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie Arithmétiques modulo Théorème de Fermat ; Algorithme(s) d’Euclide Probabilités discrètes 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 159 / 183 Congruence, anneau Zm I Definition (Congruence, module) Si a, b et m sont des entiers, m > 0, on écrit a ≡ b(mod m) si m divise b − a (noté m|(b − a)). C’est une relation d’équivalence appelée congruence modulo m. L’entier m est appelé module. Si on divise a et b par m, on obtient des quotients et des restes. On vérifie que a et b sont congrus ssi leurs restes sont égaux. Leurs restes sont entre 0 et m − 1. Le reste de la division de a par m sera noté a mod m. Montrer que la congruence est une relation d’équivalence Montrer que les 4 définitions ci-dessous sont équivalentes : 1 2 3 4 la différence a − b est divisible par m ; le reste de la division euclidienne de a par m est égal à celui de la division de b par m, ie a mod m = b mod m il existe un entier k tel que a − b = km, a − b ∈ nZ, l’idéal de tous les entiers divisibles par n. J.-O. Lachaud (LAMA) INFO006 160 / 183 Congruence, anneau Zm II Montrer que 101 ≡ 3(mod 7) La congruence modulo n étant une relation d’équivalence sur l’ensemble des entiers, on peut donc diviser cet ensemble en classes d’équivalences. La classe d’équivalence de l’entier a est l’ensemble des entiers a0 tels que a ≡ a0 (mod m). On la note [a]m , ou a + mZ, ou encore, tout simplement, ȧ quand on sait de quel m on parle. L’ensemble quotient de Z par la congruence modulo m est l’ensemble {[a]m |a ∈ Z}, noté encore Z/mZ ou Zm . Definition (Anneau commutatif Zm , m > 0) On définit une addition et une multiplication sur Zm ainsi [a]m + [b]m = [a + b]m [a]m × [b]m = [a × b]m On obtient ainsi les propriétés d’un anneau commutatif : addition interne, commutative, associative, 0 neutre pour +, opposé de a est m − a, J.-O. Lachaud (LAMA) INFO006 161 / 183 Congruence, anneau Zm III multiplication interne, commutative, associative, 1 neutre pour ×, distributivité de × sur +. On peut faire des soustractions par addition d’opposé Exemple : [8]12 × [3]12 + [6]12 = [6]12 Calculer ab mod 26, pour b = 2, 3, 4, 5, . . . et a quelconque entre 0 et 25. Quand est-ce que tous les entiers de Z26 sont générés ? Vérifier que (a mod m)(b mod m) ≡ ab(mod m). En déduire que (a mod m)n ≡ an (mod m). J.-O. Lachaud (LAMA) INFO006 162 / 183 Inverse dans Zm, corps Zp avec p premier I Theorem L’équation ax ≡ b(mod m) admet une solution unique x ∈ Zm pour tout b ∈ Zm ssi pgcd(a, m) = 1. Soit a ∈ Zm. Un inverse de a est un élément a−1 ∈ Zm tel que aa−1 ≡ a−1 a ≡ 1(mod m). Exercices : S’il existe, cet inverse est unique. D’après le théorème précédent, a admet un inverse modulo m ssi pgcd(a, m) = 1. Vérifier que pour m premier, Zm est alors un corps. J.-O. Lachaud (LAMA) INFO006 163 / 183 Inverse dans Zm, corps Zp avec p premier II Definition (fonction indicatrice d’Euler φ) Soient des entiers a ≥ 1 et m ≥ 2. Si pgcd(a, m) = 1, on dit que a et m sont premiers entre eux. Le nombre des entiers de Zm qui sont premiers avec m est noté φ(m), et φ est la fonction indicatrice d’Euler. Fig.: 1000 premières valeurs de φ. J.-O. Lachaud (LAMA) INFO006 164 / 183 Inverse dans Zm, corps Zp avec p premier III On rappelle que tout nombre m > 1 se factorise de manière unique en produits de puissances de nombres premiers [Théorème fondamental de l’arithmétique] (e.g. 98 = 2 × 72 ). Theorem Si m = Πni=1 piei , où les pi sont premiers distincts. Alors φ(m) = Πni=1 (piei − piei −1 ). Démonstration. On utilise le fait que si u et v sont premiers entre eux et strictements positifs, alors φ(uv ) = φ(u)φ(v ). On montre ensuite par récurrence sur m que φ(m) = Πni=1 φ(piei ), en utilisant le caractère multiplicatif de φ. Puis φ(piei ) = piei − piei −1 , car les entiers 1 × pi , 2 × pi , . . . , piei −1 × pi sont les seuls entiers non premiers avec piei , ce qui conclut. Exercices : J.-O. Lachaud (LAMA) INFO006 165 / 183 Inverse dans Zm, corps Zp avec p premier IV φ(40) = φ(5 · 23 ) = (5 − 1)(23 − 22 ) = 16 = 40(1 − 1/5)(1 − 1/2) = 160/10. Si m premier, que vaut φ(m) ? Montrez que φ(m) = mΠni=1 (1 − J.-O. Lachaud (LAMA) 1 pi ). INFO006 166 / 183 Quelques propriétés asymptotiques de primalité I il y a une infinité de nombres premiers. Soit π(n) le nombre de nombres premiers inférieurs à n. π(n) = 1. n→+∞ n/ ln n lim ∀n ≥ 5, φ(n) ≥ J.-O. Lachaud (LAMA) n 6 ln ln n INFO006 167 / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie Arithmétiques modulo Théorème de Fermat ; Algorithme(s) d’Euclide Probabilités discrètes 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 168 / 183 Théorème de Fermat et autres Z∗n : Ensemble des résidus modulo n premiers avec n. (|Z∗n | = φ(n)) Z∗5 = {1, 2, 3, 4}, Z∗6 = {1, 5} L’ordre d’un élément g dans un groupe multiplicatif est le plus petit m > 0 tel que g m = 1. Theorem (Lagrange) Si G est un groupe multiplicatif à n éléments et si g ∈ G , alors l’ordre de g divise n. Corollary (Petit théorème de Fermat) Si a ∈ Z et p premier, alors ap ≡ a(mod p). Corollary (Euler) Si b ∈ Z∗n , alors bφ(n) ≡ 1(mod n). Exemples : 46 mod 7 = 1, 36 mod 7 = 1, 52 mod 6 = 1, etc J.-O. Lachaud (LAMA) INFO006 169 / 183 Calcul du pgcd Algorithme d’Euclide de calcul du pgcd INPUT: a, b dans Z, a >= b >= 0 OUTPUT: pgcd(a,b) 1. Tant que b != 0 faire 1.1 r := a mod b, a := b, b := r 2. Retourner a Complexité : O((log n)3 ) opérations de bits. (analyse précise : O((log n)2 )) J.-O. Lachaud (LAMA) INFO006 170 / 183 Algorithme d’Euclide étendu Algorithme d’Euclide étendu INPUT: a, b dans Z, a >= b >= 0 OUTPUT: d = pgcd(a,b), x et y tq a*x+b*y=d. 1. Si b = 0 alors 1.1 d := a, x := 1, y := 0. 1.2 retourner (d,x,y) 2. x2 := 1, x1 := 0, y2 := 0, y1 := 1. 3. Tant que b > 0, faire 3.1 q := a div b, r := a - q*b. 3.2 x := x2 - q*x1, y := y2 - q*y1. 3.3 a := b, b := r. 3.4 x2 := x1, x1 := x, y2 := y1, y1 := y. 4. d := a, x := x2, y := y2. 5. retourner (d, x, y ); Complexité : O((log n)2 ) opérations de bits Montrez qu’à tout passage de INFO006 3.4, on a r = a0 x + b0 y . (point fixe J.-O. Lachaud (LAMA) 171de / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie Arithmétiques modulo Théorème de Fermat ; Algorithme(s) d’Euclide Probabilités discrètes 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 172 / 183 Expérience, probabilité I expérience : procédure qui a une issue (événement simple s1 , s2 , . . . ) parmi un ensemble d’issues possibles (univers S) distribution de probabilités P sur S : suite de nombres positifs pi associée à chaque si , de somme 1. pi est la probabilité que l’événement si soit l’issue de l’expérimentation. Definition (Evénement) événement E : sous-ensemble de S. La probabilité de E est la somme P des probabilités de chaque événement élémentaire de E , i.e. Pr[E ] = si ∈E pi . O ≤ Pr[E ] ≤ 1. Pr[S] = 1 et Pr[∅] = 0. Pr[E ] = 1 − Pr[E ]. Si les pi sont identiques, Pr[E ] = |E | |S| . Pr[E1 ∩ E2 ] est la probabilité mutuelle de E1 et E2 . Deux événements sont mutuellement exclusifs ssi Pr[E1 ∩ E2 ] = 0 J.-O. Lachaud (LAMA) INFO006 173 / 183 Expérience, probabilité II si E1 ⊆ E2 alors Pr[E1 ] ≤ Pr[E2 ] Pr[E1 ∪ E2 ] + Pr[E1 ∩ E2 ] = Pr[E1 ] + Pr[E2 ]. Montrez que l’événement “deux jets de pièces donnent un pile et un face” a une probabilité 1/2. Montrez que l’événement “la somme de deux jets de dés vaut 3” a une probabilité 1/12. On utilisera une expérience définie sur {1, 2, 3, 4, 5, 6} × {1, 2, 3, 4, 5, 6}. En déduire que la somme d’une paire de dés est une expérience. Quelle est sa distribution de probabilités ? J.-O. Lachaud (LAMA) INFO006 174 / 183 Expérience, probabilité III Definition (Probabilité conditionnelle) Si E1 et E2 sont deux événements, Pr[E2 ] > 0. La probabilité conditionnelle de E1 étant donné E2 est Pr[E1 |E2 ] = Pr[E1 ∩ E2 ] . Pr[E2 ] Cela mesure la probabilité que E1 se réalise, sachant que E2 s’est réalisé. Les événements E1 et E2 sont indépendants ssi Pr[E1 ∩ E2 ] = Pr[E1 ]Pr[E2 ]. Theorem (Théorème de Bayes) Soient E1 et E2 deux événements. Si Pr[E2 ] > 0, on a ]Pr[E2 |E1 ] Pr[E1 |E2 ] = Pr[E1Pr[E . 2] En déduire que E1 et E2 sont indépendants ssi Pr[E1 |E2 ] = Pr[E1 ]. J.-O. Lachaud (LAMA) INFO006 175 / 183 Variable aléatoire I Definition (Variable aléatoire discrète) Une variable aléatoire discrète X est une fonction de S vers un espace T (souvent R). La probabilité que X se réalise en x est la probabilité de l’événement E tel que E = {s ∈ S, X (s) = x}. Pr[X = x] = Pr[X −1 (x)] = X si ∈S,X (si )=x Pr[{si }] = X pi si ∈S,X (si )=x . La fonction “valeur d’un dé” est une vad de {1, 2, 3, 4, 5, 6} vers R (qui prend seulement 6 valeurs) La fonction “somme de deux dés” est une vad de {1, 2, 3, 4, 5, 6} × {1, 2, 3, 4, 5, 6} vers R (qui prend seulement 11 valeurs). Que vaut Pr[X = 11] ? J.-O. Lachaud (LAMA) INFO006 176 / 183 Variable aléatoire II Soit X la vad “somme de deux dés” et soit Y la vad qui prend la valeur 1 si les dés forment un double, 0 sinon. Déterminez d’abord Pr[Y = 1] et Pr[Y = 0]. Calculer ensuite Pr[Y = 1|X = 4] et Pr[X = 4|Y = 1]. Vérifier la relation de Bayes. Definition (Espérance) Si X est P une vad sur S, l’espérance de X (ou moyenne de X ) est E (X ) = si ∈S X (si )Pr[si ]. Montrez que E (X ) = P x∈T xPr[X = x]. Quelles sont les espérances de “valeur d’un dé”, “somme de deux dés”, “double vaut 1, sinon 0” ? Montrez la linéarité de l’espérance, i.e. si X1 et X2 sont des vad sur S, alors E (a1 X1 + a2 X2 ) = a1 E (X1 ) + a2 E (X2 ). J.-O. Lachaud (LAMA) INFO006 177 / 183 Variable aléatoire III Definition (Evénement identifié d’une expérience) Une expérience sur un espace des échantillons X sera souvent noté X. Par abus, l’événement “l’expérience X a eu pour issue l’éventualité x” sera noté par X = x, où x ∈ X . Sa probabilité est Pr X = x = Pr x. Ainsi si X = {1, 2, 3, 4, 5, 6}, les expériences “premier jet de dé vaut j” et “deuxième jet de dé vaut 7 − j” sont notées X1 = j et X2 = 7 − j. Leur probabilités sont 1/6 pour tout j. Par abus, on peut les voir comme des variables aléatoires discrètes triviales, qui sont des fonctions identité (cf plus loin). J.-O. Lachaud (LAMA) INFO006 178 / 183 Plan 1 Introduction à la sécurité et à la cryptologie 2 Cryptosystèmes et science de la cryptologie 3 Sécurité informatique et réseaux 4 Mathématiques utiles pour la cryptologie 5 Bibliographie J.-O. Lachaud (LAMA) INFO006 179 / 183 Références et lectures I Cryptologie D. Stinson. Cryptographie – Théorie et pratique. Vuibert, Paris, 2003. B. Martin. Codage, cryptologie et applications. Presses Polytechniques Universitaires Romandes, Lausanne, 2004. Sécurité informatique J.-F. Pillou. Tout sur la sécurité informatique. Dunod, Paris, 2005. L. Bloch and C. Wolfhugel. Sécurité informatique – Principes et méthodes. Eyrolles, Paris, 2007. J.-O. Lachaud (LAMA) INFO006 180 / 183 Références et lectures II B. Favre and P.-A. Goupille. Guide pratique de sécurité informatique – Mise en œuvre sous Windows et Linux. Dunod, Paris, 2005. Réseaux et Sécurité S. Ghernaouti-Hélie. Sécurité informatique et réseaux. Dunod, Paris, 2006. G. Pujolle. Les réseaux. Eyrolles, Paris, 6ème édition, 2007. J.-O. Lachaud (LAMA) INFO006 181 / 183 Webographie I Sites généraux sur la cryptologie et les mathématiques I I I Wikipedia [http ://fr.wikipedia.org/wiki/Cryptologie] MathWorld [http ://mathworld.wolfram.com] Appprendre En Ligne [http ://www.apprendre-en-ligne.net/crypto/menu/index.html] I Handbook of applied cryptography [http ://www.cacr.math.uwaterloo.ca/hac/] Organismes liés à la sécurité sur Internet I I Internet Crime Complaint Center (IC3) [http ://www.ic3.gov] les RFCs de l’Internet Engineering Task Force (IETF) [www.ietf.org] Entreprises prenant part à la sécurité I Bulletins sécurité de Microsoft [http ://www.microsoft.com/technet/security/] Organismes liés à la sécurité des réseaux universitaires I I CERT Renater [http ://www.renater.fr/rubrique.php3 ?id_rubrique=19] Bulletins de vulnérabilités du CERT Renater [http ://sites.univ-provence.fr/wcri/d_serv/d_reseau/d_cert/courant/index.html] I CRU Comité Réseau des Universités [http ://www.cru.fr] J.-O. Lachaud (LAMA) INFO006 182 / 183 Webographie II Magazines en ligne sur la sécurité I I Journal du Net [http ://www.journaldunet.com/solutions/securite/] CommentCaMarche.Net [http ://www.commentcamarche.net] Entreprises spécialisées (proposant des informations en ligne) I I SOPHOS [http ://www.sophos.fr] Symantec [http ://www.symantec.com] PGP et GnuPG I I I I Site officiel de PGP [http ://www.pgp.com] Site officiel de GnuPG [http ://www.gnupg.org] Introduction à GnuPG [http ://gpglinux.free.fr/] GnuPG pour Thunderbird / EnigMail [http ://enigmail.mozdev.org/home/index.php] I RFC 4880 sur OpenPGP [http ://www.ietf.org/rfc/rfc4880.txt] J.-O. Lachaud (LAMA) INFO006 183 / 183