Algorithmes à clé publique Jean-Marc Robert · 2016. 6. 10. · Premier algorithme à clé...
Transcript of Algorithmes à clé publique Jean-Marc Robert · 2016. 6. 10. · Premier algorithme à clé...
Cryptologie
Algorithmes à clé publique
Jean-Marc Robert
Génie logiciel et des TI
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 2
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 3
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 4
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.
2
NClés = n * (n-1)/2
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 5
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 6
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 7
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 8
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 9
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 10
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 11
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 12
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 computa-
tionnelle à 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 216 + 1 (par choix).
Clé privé: d ou (p, q) – équivalent.
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 13
Chiffrement RSA – L’équation qui vaut des milliards
Soit M un message à chiffrer Entier entre 0 et N – 1.
Le chiffrement de M:
Le déchiffrement du cryptogramme:
Note: connaissant p et q, il existe un autre algorithme de déchif-frement plus efficace utilisant le théorème du reste chinois (CRT). Mais c’est la version longue de l’histoire.
NMMEC e
Ne mod,
NCCDM d
Nd mod,
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 14
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).
Toujours pas de solution.
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 15
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 (considérant les optimisations matérielles et
logicielles) en 100-300 millisecondes !!!
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 16
É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 proto-
cole d’échange de clé tel que Diffie-Hellman.
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 17
É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.
Alice chiffre K avec la clé publique de Bob.
Alice envoie les deux cryptogrammes à Bob.
64 bits
64 bits
DESK
64 bits
64 bits
DESK
Texte en clair M
Cryptogramme du message
00 02 [ Padding sans 00 ] 00 Clé K RSA
Bob
longueur de la clé N
Cryptogramme
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 18
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 20
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 21
Signature numérique (Digital signature)
L’authentification d’un message grâce à un Message Authenti-
cation 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 22
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 23
RSA – Signature numérique
La signature digitale RSA est la notion duale du chiffrement RSA.
Le signature du message M:
Puisque le signataire est le seul possédant sa clé privée, il est le seul pouvant
signer.
La vérification de la signature:
Puisque tous les intervenants peuvent obtenir la clé publique, ils peuvent
tous vérifier la signature.
NSignatureSignatureEMessage e
Ne mod,
NMMDSignature d
Nd mod,
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 24
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 25
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 26
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 27
Modèle hiérarchique – Certificats X.509v3
Certificate Version
Serial Number
Algorithm ID
Issuer
Validity Not Before
Not After
Subject
Subject Public Key Info Public Key Algorithm
Subject Public Key
Issuer Unique Identifier (Optional)
Subject Unique Identifier (Optional)
Extensions (Optional)
Certificate Signature Algorithm
Certificate Signature
Identification de la personne
Signature du contenu par le CA
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 28
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 29
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
CA
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 30
Modèle hiérarchique – Identification
Chaque intervenant ayant un certificat peut « prouver » son
identité à tout autre intervenant ayant confiance au CA.
Bob peut posséder le certificat de plusieurs CA afin de pouvoir
identifier plusieurs intervenants.
J’accepte votre certificat
Voici mon nom et ma clé (voici mon certificat)
Validation du certificat
d’Alice grâce au certificat
du CA.
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 31
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 32
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 33
Modèle hiérarchique – Certificate chain
Une chaîne de certificats est composée:
Du certificat de l’intervenant
Du certificat du CA1 qui a authentifié l’intervenant
Du certificat du CA2 qui a authentifié CA1
Du certificat du CA3 qui a authentifié CA2
…
Du certificat du CAk 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 34
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 35
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 36
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 37
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 38
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 39
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 40
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 41
Supplémentaires
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 42
É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 computa-
tionnelle:
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 43
Échange de clé – Diffie-Hellman
1. Alice choisit x au hasard.
2. Alice envoie gx mod p à Bob.
3. Après la réception du message de Bob,
Alice calcule la (gy 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 gy mod p à Alice.
3. Après la réception du message d’Alice,
Bob calcule la (gx mod p)y mod p.
4. La clé secrète peut être utilisée pour
chiffrer un message.
Alice: gx mod p
Bob: gy mod p
= gxy mod p = gxy mod p
Jean-Marc Robert, ETS Cryptologie - Clé publique - A08 44
É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 45
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