C15.3 : Chiffrement asymétrique
Définition
Le chiffrement asymétrique permet d'assurer la confidentialité, voir l'authentification des participant, d'une communication sans qu'une clé ait besoin d'être échangée.
Méthode de partage de clé de Diffie-Hellman
La méthode de Diffie-Hellman permet de convenir d'une clé commune sans avoir à l'échanger.
Cette méthode se base sur l'existence d'une fonction \(M\), que l'on ne détaillera pas ici, aux propriétés suivantes :
- - La fonction \(M\) est connue de tous ;
- - Si on connait \(M(x,y)\) et \(x\), alors il est difficile de trouver \(y\) (sauf à essayer toutes les valeurs successivement)
- - Pour trois entier \(x\), \(y\) et \(z\), on a \(M(M(x,y),z) = M(M(x,z),y)\).
La création de la clé commune se fait de la façon suivante :
- - L'émetteur et le récepteur se mettent d'accord sur un nombre \(x\) commun (et donc public, c'est-à-dire accessible de tous) ;
- - L'émetteur choisi un nombre \(y\) qu'il garde secret et le récepteur un nombre \(z\) qu'il garder également secret.
- - L'émetteur envoie \(M(x,y)\) au récepteur et le récepteur envoie \(M(x,z)\) à l'émetteur.
- - L'émetteur calcul \(M(M(x,z),y)\) et le récepteur calcul \(M(M(x,y),z)\). Ces deux valeurs sont identiques et constituent la clé.
Remarque : le calcul de la clé nécessite de connaitre les trois nombres \(x\), \(y\) et \(z\), or ni \(y\), ni \(z\) n'ont été échangés.
Paires de clés publique/privée
Pour le chiffrement asymétrique, on génère une
- - la première clé est publique, c'est-à-dire accessible à tous : \(K^{pub}\) ;
- - la deuxième clé est privée, c'est-à-dire gardée secrète par son créateur : \(K^{priv}\)
Les deux clé d'une paire sont réciproques, c'est-à-dire qu'elles vérifient la propriété suivante :
Si \(K^{pub}(m) \rightarrow m_🔒\), alors \(K^{priv}(m_🔒) = K^{priv}(K^{pub}(m)) \rightarrow m\)
Exemples de chiffrements asymétriques
Principe de base du chiffrement asymétrique (méthode pour avoir la confidentialité)
Présentation
Alice souhaite envoyer un message \(m\) confidentiel à Bob.
Étapes du chiffrement
Étape 1 : Bob se crée une paire de clés : \(K_{Bob}^{pub}\) et \(K_{Bob}^{priv}\).
Étape 2 : Alice utilise la clé publique de Bob pour chiffrer le message \(m\) et obtient le message chiffré \(m_🔒\) qu'elle envoie à Bob.
\(K_{Bob}^{pub}(m) \rightarrow m_🔒\).
Étape 3 : Bob se sert de sa clé privée pour déchiffrer le message qu'il a reçu et retrouve le message \(m\).
\(K_{Bob}^{priv}(m_🔒) = K_{Bob}^{priv}(K_{Bob}^{pub}(m)) \rightarrow m\).
Questions
1. Justifier que le message est bien confidentiel.
2. Justifier que le message n'est pas authentifié.
Remarque
Cette méthode est vulnérable à l'attaque dite de "l'homme du milieu" qui compromet la confidentialité.
Méthode pour avoir la confidentialité et l'authenticité
Présentation
Alice souhaite envoyer un message \(m\) confidentiel et authentifié à Bob
La méthode décrite ici est celle utilisée dans le chiffrement RSA.
Spécificité des clés
Pour que l'authentification soit possible on utilise des algorithmes pour lesquels les paires de clés publique/privée sont interchangeables. Autrement dit, un message qui a été chiffré avec la clé publique d'une paire peut être déchiffré avec la clé privée et inversement.
\(K^{priv}(K^{pub}(m)) = K^{pub}(K^{priv}(m)) = m\)
Étapes du chiffrement
Étape 1 : Alice crée une paire de clés \(K_{Alice}^{pub}\) et \(K_{Alice}^{priv}\). Bob crée également une paire de clés \(K_{Bob}^{pub}\) et \(K_{Bob}^{priv}\).
Étape 2 : Alice chiffre son message avec sa clé privée, puis elle le chiffre à nouveau avec la clé publique de Bob et obtient le message chiffré \(m_🔒\).
\(K_{Bob}^{pub}(K_{Alice}^{priv}(m)) \rightarrow m_🔒\)
Étape 3 : Bob déchiffre le message qu'il reçoit avec sa clé privée puis il le déchiffre à nouveau avec la clé publique d'Alice.
\(K_{Alice}^{pub}(K_{Bob}^{priv}( m_🔒)) = K_{Alice}^{pub}(K_{Bob}^{priv}(K_{Bob}^{pub}(K_{Alice}^{priv}(m)))) = K_{Alice}^{pub}(K_{Alice}^{priv}(m)) \rightarrow m\).
Questions
1. Justifier que le message est bien confidentiel.
2. Justifier que le message est bien authentifié.
Authentification par signature
Présentation
Alice souhaite envoyer un message en prouvant qu'elle en est l'autrice.
Démarche
Lorsqu'Alice veut signer un document, elle utilise sa clé privée pour générer une signature numérique unique pour ce document. Le destinataire peut ensuite utiliser la clé publique d'Alice pour vérifier l'authenticité de la signature.
Authentification par un tiers de confiance
Ici, on considère trois protagonistes :
- - Une société S, qui souhaite être authentifiée
- - Alice, qui souhaite communiquer avec la société en étant sûr de l'identité de cette société
- - Un tiers de confiance TC.
Étapes de la création du certificat pour S par TC
Étape 1 : TC récupère la clé publique de S, \(K_{S}^{pub}\).
Étape 2 : TC vérifie l'identité de S par des moyens divers.
Étape 3 : TC crée le certificat : \(c_S = K_{TC}^{priv}(K_{S}^{pub})\).
Étapes de l'utilisation du certification par Alice
Étape 1 : Alice récupère la clé publique de S, \(K_{S}^{pub}\).
Étape 2 : Alice récupère la clé publique de TC, \(K_{TC}^{pub}\).
Étape 3 : Alice calcul \(K_{TC}^{pub}(c_S)\). \(K_{TC}^{pub}(c_S) = K_{TC}^{pub}(K_{TC}^{priv}(K_{S}^{pub})) = K_{S}^{pub}\)
Étape 4 : Alice compare le résultat à la clé publique proposée directement par S. Si les deux sont identiques, Alice est sûr que S s'est fait reconnaitre par TC.
Remarques générales
• Le chiffrement et le déchiffrement utilisés ici demandent des resources importantes. Les méthodes à clé publique-clé privée ne sont donc pas utilisés pour des quantités importantes d'informations.
• Une méthode consiste à utiliser le chiffrement asymétrique pour échange une clé symétrique, puis à utiliser le chiffrement symétrique.