Cryptologie Algorithmes à clé publique Jean-Marc Robert Génie logiciel et des TI
Plan de la présentation Introduction Cryptographie à clé publique Les principes essentiels La signature électronique Infrastructures à clé publique Notions en vrac Les applications Conclusions Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 2
Cryptographie à clé publique asymétrique Méthode permettant à une personne connaissant la clé publique d une autre personne de lui envoyer des messages de façon sécurisée. Cette seconde personne connaissant la clé privée associée à sa clé publique peut déchiffrer les messages qui lui ont été envoyés. La confidentialité des messages dépend de l authenticité de la clé publique et de la robustesse de l algorithme utilisé. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 3
Cryptographie traditionnelle a ses problèmes Si deux intervenants veulent s échanger de l information confidentielle, ils doivent en premier lieu s échanger une clé secrète de façon sécurisée. Rencontre personnelle. Parties de clé envoyées par des canaux séparés. La clé correspond au ou-exclusif de deux séquences envoyées séparément. Si N intervenants veulent s échanger des informations sans l aide d un tiers, chaque intervenant doit avoir une clé différente avec chacun des autres intervenants. N Clés = n * (n-1)/2 2 Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 4
Cryptographie à clé publique Principe La cryptographie à clé publique ou asymétrique est basée sur un concept très différent. Chaque intervenant possède une clé publique. Cette clé peut être connue de tous. Par exemple, disponible dans un répertoire accessible publiquement. Toute personne connaissant cette clé peut envoyer un message chiffré au propriétaire de cette clé. Chaque intervenant possède une clé privée. Cette clé doit demeurer confidentielle. Cette clé est liée (mathématiquement) à la clé publique correspondante. Cette clé permet de déchiffrer tout message chiffré avec la clé publique correspondante. Concept présenté par Diffie et Hellman en 1976. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 5
Cryptographie à clé publique Avantages Si N intervenants veulent s échanger des informations sans l aide d un tiers, chaque intervenant doit avoir une clé publique unique connue de tous. Donc, N clés sont suffisantes. Les clés publiques doivent être distribuées de façon authentifiée, mais non confidentielle. Beaucoup plus simple et moins coûteux. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 6
Fonctions à sens unique One-way functions Une fonction à sens unique est une fonction dont il est facile d obtenir le résultat mais difficile, voire impossible, à partir du résultat d obtenir les arguments initiaux. Les exemples sont nombreux. Briser un œuf. Mélanger un pot de peinture blanche et un pot de peinture rouge. Calculer le ou-exclusif de deux chaines de bits dont une des deux chaines est aléatoire one-time pad. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 7
Fonction à sens unique computationnelle Computationally one-way function Une fonction à sens unique computationnelle est une fonction dont il est facile d obtenir le résultat mais difficile en un temps raisonnable à partir du résultat d obtenir les arguments initiaux. Par exemple, Multiplication de deux «grands» nombres premiers. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 8
Concours élémentaire Trouver les deux facteurs premiers des produits suivants: 35 5 7 221 13 17 4453 61 73 503807 521 967 50123093 7297 6869 Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 9
Concours RSA-640 Trouver les deux facteurs premiers du produit suivant: 31074182404900437213507500358885679300373460228427 27545720161948823206440518081504556346829671723286 78243791627283803341547107310850191954852900733772 4822783525742386454014691736602477652346609 = 16347336458092538484431338838650908598417836700330 92312181110852389333100104508151212118167511579 1900871281664822113126851573935413975471896789968 515493666638539088027103802104498957191261465571 Effort de 6 mois de calcul équivalent à 30 années de calcul d une machine 2.2GHz-Opteron-CPU [F. Bahr et al., 2006] Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 10
Fonction à sens unique computationnelle à porte dérobée Computationally one-way trapdoor function Une fonction à sens unique computationnelle à porte dérobée est une fonction dont il est facile d obtenir le résultat mais difficile en un temps raisonnable à partir du résultat d obtenir les arguments initiaux à moins d en connaître la clé ouvrant la porte dérobée. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 11
Premier algorithme à clé publique RSA Cet algorithme a été proposé en 1977 par Rivest, Shamir et Adleman pour répondre aux concepts de Diffie-Hellman. Cet algorithme est basé sur une fonction à sens unique computationnelle à porte dérobée: Soient p et q deux grands nombres premiers d au moins 512 bits. Soit N = p q. Soient e et d tels que ed 1 mod φ (N). Fonction de Euler φ (N) = (p 1) (q 1). Clé publique: N et e. Généralement, e est égal à 3 ou 2 16 + 1 (par choix). Clé secrète: d ou (p, q) équivalent. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 12
Chiffrement RSA L équation qui vaut des milliards Soit M un message à chiffrer Entier entre 0 et N 1. Le chiffrement de M: C E e M M mod N e, N Le déchiffrement du cryptogramme: M D C d, N C d mod N Note: connaissant p et q, il existe un autre algorithme de déchiffrement plus efficace utilisant le théorème du reste chinois (CRT). Mais c est la version longue de l histoire. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 13
Chiffrement RSA Les mathématiques Le problème mathématique sur lequel est basé le chiffrement RSA est connu sous le nom de «Racine modulaire discrète» (Discrete Modular Root). Très longue histoire. Toujours pas de solution. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 14
Chiffrement RSA Bien que l algorithme soit simple, il est très coûteux en ressources. Par exemple, une carte à puce peut calculer Une itération AES ou DES en 1 à 5 millisecondes (voir nanosecondes avec un accélérateur matériel) Un déchiffrement RSA (utilisant la version CRT et un accélérateur matériel) en 100-300 millisecondes!!! Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 15
Échange de clés Puisque les chiffrements à clé publique sont trop coûteux, ils servent généralement à échanger des clés secrètes. Système hybride Le message est chiffré rapidement grâce à une clé secrète DES ou AES. Cette clé secrète ne sert que pour un message. C est une clé de session. Première alternative: La clé de session est chiffrée grâce à un algorithme de cryptographie à clé publique tel que RSA. Deuxième alternative: La clé de session est obtenue grâce à un protocole d échange de clé tel que Diffie-Hellman. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 16
Échange de clés Chiffrement RSA Supposons qu Alice veuille envoyer un message M à Bob. Alice choisit une clé de session K au hasard (p.e. DES 56 ou 112 bits.) Alice chiffre le message M avec cette clé K. Texte en clair M 64 bits 64 bits K DES K DES 64 bits 64 bits Cryptogramme du message Alice chiffre K avec la clé publique de Bob. Bob 00 02 [ Padding sans 00 ] 00 Clé K RSA longueur de la clé N Cryptogramme Alice envoie les deux cryptogrammes à Bob. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 17
Cryptographie à clé publique a ses problèmes Le chiffrement RSA a un problème important: Les clés publiques doivent être authentiques. Les clés publiques ne doivent pas demeurées confidentielles comme les clés privées ou les clés secrètes, mais elles doivent être certifiées comme étant authentique. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 18
RSA Man-in-the-middle Lorsque deux intervenants veulent échanger des informations pour échanger une clé de session grâce à RSA, ils se doivent d authentifier leur partenaire. Alice: Voici ma clé publique Bob: Voici la clé de session chiffrée The man-in-the-middle Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 19
Signature numérique (Digital signature) L authentification d un message grâce à un Message Authentication Code (MAC) permet au destinataire de vérifier l intégrité du message et l authenticité de l envoyeur. Toutefois, il n est pas possible de déterminer si l envoyeur ou le destinataire a réellement envoyé le message. Puisque les deux intervenants possèdent la clé secrète utilisée pour calculer le MAC, ils peuvent être tous les deux l envoyeur. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 20
Signature numérique (Digital signature) La signature numérique permet de: s assurer de l intégrité du message; de vérifier l origine du message (non-repudiation). Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 21
RSA Signature numérique La signature digitale RSA est la notion duale du chiffrement RSA. Le signature du message M: Signature D Puisque le signataire est le seul possédant sa clé privée, il est le seul pouvant signer. La vérification de la signature: d M M mod N d, N Message E e Signature Signature mod N e, N Puisque tous les intervenants peuvent obtenir la clé publique, ils peuvent tous vérifier la signature. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 22
Infrastructures à clé publique La cryptographie à clé publique repose essentiellement sur l authenticité des clés publiques. Ces clés n ont pas forcément besoin d être transmises de façon confidentielle, mais elles se doivent d être transmises de façon à s assurer de leurs authenticités. Sources non-réfutables en qui les intervenants peuvent avoir confiance. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 23
Modèles d infrastructure Modèle hiérarchique Infrastructure à clé publique (ICP) Public key infrastructure (PKI). Utilisé par les organismes commerciaux et gouvernementaux. Réseau de confiance (Web of trust) Modèle distribué sans autorité centrale. Utilisé par le logiciel PGP. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 24
Modèle hiérarchique Le modèle repose sur une autorité certifiant les clés des divers intervenants. Le rôle de l autorité de certification (Certification Authority CA) est de s assurer de la validité de la correspondance entre un nom d une personne et une clé publique. Le CA émet des certificats X.509 aux personnes qu elle a pu authentifier. Une personne faisant confiance à un CA devrait pouvoir identifier toutes les personnes authentifiées par ce CA. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 25
Modèle hiérarchique Certificats X.509v3 Certificate Version Serial Number Algorithm ID Issuer Identification de la personne Validity Not Before Not After Subject Subject Public Key Info Public Key Algorithm Subject Public Key Issuer Unique Identifier (Optional) Subject Unique Identifier (Optional) Signature du contenu par le CA Extensions (Optional) Certificate Signature Algorithm Certificate Signature Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 26
Modèle hiérarchique Certificat du CA Distribution du certificat du CA à tous les intervenants. Certificat autosigné c.-à-d. que le CA signe son propre certificat. Le certificat est distribué de façon sécurisée p.e. avec le système d exploitation. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 27
Modèle hiérarchique Certificat du client Chaque intervenant s inscrit au CA afin qu il puisse être identifié par un autre intervenant. L intervenant reçoit un certificat l identifiant signé par le CA. Voici mon nom, ma clé et mes preuves Voici le certificat X.509 d Alice signé par CA Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 28
Modèle hiérarchique Identification Chaque intervenant ayant un certificat peut «prouver» son identité à tout autre intervenant ayant confiance au CA. Voici mon nom et ma clé (voici mon certificat) Validation du certificat d Alice grâce au certificat du CA. J accepte votre certificat Bob peut posséder le certificat de plusieurs CA afin de pouvoir identifier plusieurs intervenants. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 29
Modèle hiérarchique La hiérarchie Afin de permettre une plus grande flexibilité, les CA peuvent s organiser en hiérarchie. Il suffit alors de faire confiance au root CA pour identifier tous les intervenants. Root CA Certificate chain Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 30
Modèle hiérarchique Certificate chain Une chaîne de certificats est composée: Du certificat de l intervenant Du certificat du CA 1 qui a authentifié l intervenant Du certificat du CA 2 qui a authentifié CA 1 Du certificat du CA 3 qui a authentifié CA 2 Du certificat du CA k qui a été authentifié par le Root CA Ainsi, tout intervenant ayant le certificat du Root CA peut remonter la chaîne et identifier l intervenant initial. La confiance est transitive. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 31
Modèle hiérarchique Problèmes Comment identifier et authentifier un intervenant pour un CA? Niveaux de certificats Comment distribuer de façon sécurisée le certificat d un Root CA? Comment faire pour révoquer un certificat? Vérification en ligne? Comment intégrer les certificats dans une application usager? Quel usager a les compétences pour comprendre et analyser un certificat? Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 32
Modèle du réseau de confiance Ce modèle du réseau de confiance est simple et sans autorité centrale. C est le modèle qu utilise PGP Pretty Good Privacy. Chaque intervenant construit son réseau de confiance. Il peut décider de faire confiance à un autre intervenant qui lui donne directement son certificat. Par exemple, vérification de l empreinte du certificat par téléphone. Il peut décider de faire pleine confiance à tout intervenant «connu» par un autre intervenant en qui il a pleine confiance. Plusieurs variantes de cette règle existent: Doit être connu par plus d un intervenant en qui il a pleine confiance. Peut avoir une confiance relative en ce nouvel intervenant. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 33
Modèle du réseau de confiance Problèmes Est-ce que les amis de mes amis sont mes amis? Idéal pour un milieu informel, mais non pour une application où le cadre juridique est important. Bancaire Gouvernemental Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 34
Notions en vrac Près de 30 ans de recherche Elliptic-Curve Cryptosystem Systèmes cryptographiques très performants (longueurs de clé) Cryptosystème ElGamal Algorithme de chiffrement et de signature basé sur le problème du logarithme discret. DSA Digital Signature Algorithm Standard américain basé sur une variante de ElGamal Cryptosystème de Rabin Cryptosystème de Paillier Cryptographie à clé publique probabiliste Algorithmes à divulgation nulle (Zero-knowledge proofs) Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 35
La cryptographie mais où? IPSec + IKE (Internet Key Exchange) Authentification du serveur + Échange de clé Signature RSA, DSA, Chiffrement (AES, 3DES, DES, ) de la communication SSL/TLS Authentification du serveur + Échange de clé RSA, DH, Chiffrement (AES, 3DES, DES, ) de la communication Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 36
La cryptographie mais où? SSH Authentification du serveur + Échange de clé DH Empreinte de la clé publique présentée à l usager Configuration de la clé publique du serveur sur le poste client Certificat à clé publique Authentification du client (facultatif) Chiffrement (AES, 3DES, DES, ) de la communication Client courriel Outlook, PGP Signature des messages RSA, DSA Chiffrement des messages AES, 3DES, DES, Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 37
Conclusions La cryptographie est un outil essentiel afin de s assurer de la confidentialité, l authenticité et de l intégrité des actifs informationnels. Règle d or #1 : ne jamais développer un nouvel algorithme cryptographique. Utiliser ceux qui sont disponibles depuis un certain temps. Older is better. Règle d or #2: avant de déployer une solution cryptographique, il faut comprendre l architecture de sécurité et son implémentation: Confiance en qui? Gestion des clés adéquate (génération, entreposage, rotation, ) Implémentation logicielle et ses vulnérabilités Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 38
Supplémentaires Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 39
Échange de clé Diffie-Hellman Premier algorithme présenté en 1976. Algorithme permettant à deux intervenants d obtenir une clé secrète de façon sécurisée en utilisant un canal de communication authentifié (tel que le téléphone). Ne permets pas de chiffrer directement un message comme RSA. Ce système est basé sur une fonction à sens unique computationnelle: Soit p un grand nombre premier d au moins 1024 bits. Soit g un «générateur». Les paramètres g et p sont connus de tous. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 40
Échange de clé Diffie-Hellman Alice: g x mod p Bob: g y mod p = g xy mod p = g xy mod p 1. Alice choisit x au hasard. 2. Alice envoie g x mod p à Bob. 3. Après la réception du message de Bob, Alice calcule la (g y mod p) x mod p. 4. La clé secrète peut être utilisée pour chiffrer un message. 1. Bob choisit y au hasard. 2. Bob envoie g y mod p à Bob. 3. Après la réception du message d Alice, Bob calcule la (g x mod p) y mod p. 4. La clé secrète peut être utilisée pour chiffrer un message. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 41
Échange de clé DH Les mathématiques Le problème mathématique sur lequel est basé l échange de clé DH est connu sous le nom de «logarithme discret» (Discrete Logarithm Problem). Très longue histoire. Toujours pas de solution. Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 42
DH Man-in-the-middle Lorsque deux intervenants veulent échanger des informations pour obtenir une clé de session grâce à DH, ils se doivent d authentifier leur partenaire. Alice: Voici mes données pour la clé Bob: Voici mes données pour la clé The man-in-the-middle Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 43