Quelle est la différence entre Diffie-Hellman et RSA ?
Réponse courte
RSA est un algorithme asymétrique utilisé pour chiffrer des données ou créer des signatures numériques à l'aide d'une paire de clés. Diffie-Hellman est un protocole d'accord de clé qui permet à deux parties de dériver un secret partagé sur un canal public sans jamais le transmettre. Ils résolvent des problèmes différents : RSA prouve l'identité et peut encapsuler des clés ; DH négocie une clé de session — et sa variante éphémère assure la confidentialité persistante.
Les recruteurs posent cette question pour voir si vous comprenez que la « crypto asymétrique » n'est pas une chose unique. RSA et Diffie-Hellman reposent tous deux sur des problèmes mathématiques difficiles et utilisent tous deux des valeurs publiques, mais ils ont été conçus pour des tâches différentes.
RSA : chiffrement et signatures
RSA repose sur la difficulté de factoriser le produit de deux grands nombres premiers. Une partie génère une paire de clés : une clé publique que tout le monde peut utiliser, et une clé privée qu'elle seule détient. Grâce à cette structure, RSA peut faire deux choses — chiffrer des données pour que seul le détenteur de la clé privée puisse les lire, et signer des données pour que quiconque puisse vérifier qu'elles proviennent du détenteur de la clé privée et n'ont pas été altérées. Dans les anciens TLS, RSA servait aussi au transport de clé : le client chiffrait un secret de session avec la clé publique du serveur.
Diffie-Hellman : accord de clé
Diffie-Hellman ne chiffre ni ne signe rien. C'est un protocole dans lequel deux parties choisissent chacune une valeur privée, échangent des valeurs publiques dérivées de celles-ci, et calculent indépendamment le même secret partagé — sans que ce secret ne traverse jamais le réseau. Sa sécurité repose sur le problème du logarithme discret. Un espion voit les valeurs publiques mais ne peut pas dériver de manière réaliste le secret partagé.
Pourquoi la distinction importe
Les deux sont complémentaires, et c'est exactement ainsi que TLS les utilise : un échange Diffie-Hellman éphémère (DHE ou, avec les courbes elliptiques, ECDHE) négocie la clé de session, tandis qu'une signature RSA (ou ECDSA) authentifie le serveur, pour savoir avec qui vous vous êtes mis d'accord. Le DH éphémère assure aussi la confidentialité persistante, car les clés par session sont jetées — capturer plus tard la clé à long terme du serveur ne déchiffre pas le trafic passé. Le transport de clé RSA statique n'a pas cette propriété, ce qui explique pourquoi TLS 1.3 l'a abandonné.
Ce que recherchent les recruteurs
Indiquez clairement que RSA peut chiffrer et signer alors que DH ne fait que se mettre d'accord sur une clé, puis reliez cela à TLS : DH pour la clé de session, une signature pour l'authentification, et DH éphémère pour la confidentialité persistante.
Questions de suivi probables
- Pourquoi Diffie-Hellman éphémère (DHE/ECDHE) offre-t-il la confidentialité persistante alors que l'échange de clés RSA non ?
- Pourquoi TLS 1.3 a-t-il supprimé l'échange de clés RSA statique ?
- Qu'est-ce que le problème du logarithme discret et comment sous-tend-il DH ?