Contrairement au cryptage symétrique, qui repose sur une seule clé secrète partagée pour le cryptage et le déchiffrement, la cryptographie asymétrique utilise une paire de clés liées mathématiquement : une clé publique, qui peut être distribuée librement, et une clé privée, qui doit rester confidentielle. Ce changement fondamental dans l'architecture de confiance sous-tend tout, des connexions HTTPS et de la signature par courriel aux portefeuilles crypto-monnaies et aux systèmes d'identité numérique.

Qu'est-ce que le chiffrement asymétrique ?

Le chiffrement asymétrique, également connu sous le nom de cryptographie à clé publique, a été conceptualisé par Whitfield Diffie et Martin Hellman en 1976. L'idée révolutionnaire était que le chiffrement et le décryptage pouvaient être séparés : un chiffrement à clé, un déchiffrement à clé différent. Cela supprime la nécessité pour les parties de pré-partager une clé secrète sur un canal sécurisé, une limitation majeure des systèmes symétriques. Dans le chiffrement asymétrique, la clé publique est distribuée ouvertement; tout le monde peut l'utiliser pour chiffrer un message destiné au propriétaire de la paire de clés. La clé privée correspondante, cependant, est connue seulement du propriétaire et est utilisée pour déchiffrer ces messages. La sécurité de l'ensemble du système repose sur l'infaisabilité calculable de la clé privée à partir de la clé publique, compte tenu des capacités mathématiques et technologiques actuelles.

Cette séparation des rôles permet également d'ajouter des services de sécurité au-delà de la confidentialité. Par exemple, une clé privée peut être utilisée pour créer une signature numérique qui prouve l'authenticité et l'intégrité, tandis que la clé publique permet à quiconque de vérifier cette signature.

Le rôle des clés publiques et privées

Les clés publiques et privées ne sont pas des chaînes arbitraires; elles sont générées ensemble par un algorithme de génération de clés qui produit une paire de clés liées mathématiquement. La clé publique peut être distribuée via des répertoires, des certificats ou même intégrée dans des signatures de courriel. La clé privée est stockée de façon sécurisée – souvent dans des modules de sécurité matérielle (HSM), des modules de plateforme de confiance (TPM) ou des conteneurs de fichiers chiffrés. Une fois générée, la relation entre les deux clés est une seule fois : les données chiffrées avec la clé publique ne peuvent être déchiffrées qu'avec la clé privée correspondante, et les données signées avec la clé privée ne peuvent être vérifiées qu'avec la clé publique correspondante.

Pour illustrer, supposons qu'Alice veuille envoyer un message confidentiel à Bob. Elle obtient la clé publique de Bob à partir d'une source fiable (p. ex., son site Web ou un serveur à clé publique). Alice crypte son message en utilisant la clé publique de Bob et envoie le codex sur un réseau non sécurisé. Même si un attaquant intercepte le codex, il ne peut pas récupérer le texte sans la clé privée de Bob. Lorsque Bob reçoit le message chiffré, il utilise sa clé privée pour le déchiffrer. Ce processus permet à Bob, seul détenteur de la clé privée, de lire le message, même si la clé de chiffrement était publique.

Génération clé: les mathématiques derrière la paire

La génération clé repose sur des problèmes mathématiques faciles à réaliser d'une manière mais extrêmement difficiles à inverser sans informations secrètes supplémentaires. Deux familles primaires d'algorithmes dominent:

  • RSA (Rivest–Shamir–Adleman): En se basant sur la difficulté d'affacturer le produit de deux grands nombres primaires. Un algorithme de génération de clés choisit deux grands nombres primaires (p et q), calcule leur produit n = p × q, puis dérive un exposant public e et un exposant privé d de telle sorte que e × d φ 1 (mod φ(n)). La clé publique consiste en (n, e); la clé privée est (n, d).
  • Cryptographie de courbe elliptique (ECC): S'appuie sur la courbe elliptique problème logarithmique discret. Une clé privée est un entier choisi au hasard; la clé publique est le résultat de la multiplication d'un point de générateur fixe sur la courbe par cet entier. Étant donné la clé publique, trouver la clé privée nécessite de résoudre le logarithme discret sur la courbe, qui est considéré comme étant encore plus difficile que l'affacturage RSA pour des tailles de clés équivalentes. ECC offre une sécurité comparable avec des clés beaucoup plus petites — une clé ECC de 256 bits fournit à peu près la même sécurité qu'une clé RSA de 3072 bits.

D'autres algorithmes incluent Diffie‐Hellman (pour l'échange de clés) et sa variante de courbe elliptique ECDH, ainsi que des systèmes de signature numérique comme DSA, ECDSA et le Ed25519. Dans tous les cas, le processus de génération de clés doit être sécurisé par cryptographie : la qualité de la randomité est essentielle pour empêcher les attaquants de deviner ou de prédire des clés privées.

Chiffrement et déchiffrement dans la pratique

Pour les systèmes de chiffrement basés sur ECC (par exemple ECIES), le processus utilise des paires de clés éphémères et un chiffrement symétrique pour chiffrer la charge utile réelle, la partie asymétrique assurant le secret partagé. Dans les deux cas, l'expéditeur n'a besoin que de la clé publique du destinataire, et le destinataire utilise sa clé privée pour terminer l'opération.

Il est important de noter que le chiffrement asymétrique n'est généralement pas utilisé pour chiffrer directement les grands messages. Les algorithmes à clé publique sont des ordres de grandeur plus lents que les chiffrements symétriques comme AES. Les protocoles pratiques utilisent plutôt une approche hybride : une clé symétrique aléatoire (appelée clé de session) est générée, le message est chiffré avec cette clé symétrique à l'aide d'un chiffrement rapide, et la clé de session elle-même est chiffrée avec la clé publique du destinataire.

Algorithmes de chiffrement asymétriques communs

Plusieurs algorithmes ont été standardisés et largement déployés. Chacun offre différents compromis en termes de performances, de taille clé et de garanties de sécurité.

  • RSA: L'algorithme à clé publique le plus largement reconnu. Il est utilisé pour le chiffrement et les signatures numériques. La longueur minimale recommandée de la clé est de 2048 bits; de nombreuses organisations mandatent maintenant 3072 ou 4096 bits.
  • Diffie‐Hellman (DH) et Elliptic Curve Diffie‐Hellman (ECDH): Pas directement des algorithmes de chiffrement, mais des protocoles d'échange de clés qui permettent à deux parties de s'entendre sur un secret partagé par rapport à un canal non sécurisé. Le secret partagé est ensuite utilisé comme une clé symétrique.
  • Algorithme de signature numérique (DSA) et ECDSA: Norme fédérale de traitement de l'information (FIPS) approuvée pour les signatures. ECDSA est largement utilisé dans les systèmes de blockchain (p. ex. Bitcoin, Ethereum) pour la signature de transaction.
  • Ed25519 et X25519: Des systèmes modernes et performants de courbure elliptique conçus par Daniel J. Bernstein. Ed25519 offre des signatures rapides et sécurisées; X25519 offre un échange de clés efficace.

Applications du chiffrement asymétrique dans le monde réel

Le cryptage asymétrique n'est pas un concept abstrait, il alimente directement l'infrastructure de sécurité du monde numérique.

  • HTTPS / SSL/TLS: Lorsque vous visitez un site Web sécurisé, la poignée de main TLS utilise le chiffrement asymétrique (par exemple, RSA ou ECDHE) pour négocier une clé de session symétrique. Le certificat serveur contient sa clé publique; le client vérifie le certificat et utilise la clé publique pour chiffrer un secret pré-master. Seul le serveur , clé privée, peut le décrypter, en veillant à ce que seul le serveur légitime puisse lire la session.
  • Pretty Good Privacy (PGP) et GNU Privacy Guard (GPG)[: Utilisé pour le chiffrement et la signature des courriels. Les utilisateurs génèrent des paires de clés; la clé publique est téléchargée sur les serveurs de clés. Lors de l'envoi d'un courriel chiffré, l'expéditeur récupère la clé publique du destinataire et chiffre la clé de session symétrique avec elle. Les destinataires décryptent avec leur clé privée.
  • Cryptomonnaies et Blockchain: Bitcoin, Ethereum, et autres cryptomonnaies utilisent ECDSA ou Ed25519 pour signer des transactions. Un utilisateur - -wallet - est essentiellement une clé privée; la clé publique correspondante (ou son hachage) est l'adresse du portefeuille.
  • Secure Shell (SSH)[: SSH utilise l'authentification de la clé publique pour les connexions à distance sans mot de passe. Les utilisateurs génèrent une paire de clés; la clé publique est placée sur le serveur dans . Le serveur défie le client de prouver la possession de la clé privée en signant un message. Les clés Ed25519 et RSA 4096‐bit sont courantes.
  • Signage de code: Les développeurs de logiciels signent des binaires et des scripts avec leur clé privée. Les systèmes d'exploitation et les navigateurs vérifient la signature en utilisant la clé publique du développeur pour s'assurer que le code n'a pas été falsifié et provient d'une source de confiance.

Signatures numériques et authentification

Une signature numérique est un schéma mathématique pour démontrer l'authenticité d'un message numérique. Pour signer un message, l'expéditeur utilise sa clé privée pour produire une valeur de signature qui dépend à la fois du message et de la clé privée. Toute personne ayant accès à la clé publique correspondante peut vérifier que la signature a été créée par le détenteur de la clé privée et que le message n'a pas été modifié après la signature.

Les signatures numériques offrent trois propriétés de sécurité essentielles :

  1. Authentification: Le destinataire peut vérifier que le message a été signé par l'expéditeur revendiqué, car seule la clé privée de l'expéditeur aurait pu produire une signature qui valide avec la clé publique de l'expéditeur.
  2. Intégration: Toute modification du message après la signature invalide la signature, ce qui garantit que le message n'a pas été altéré en transit.
  3. Non-répudiation: Parce que la clé privée est sous le seul contrôle du signataire, le signataire ne peut plus nier avoir signé le message (en supposant que la clé n'a pas été compromise).

Les signatures numériques sont la base de l'infrastructure à clé publique (ICP). Les autorités de certification (AC) signent des certificats numériques – qui lient une entité à sa propre identité – en utilisant leurs propres clés privées. Lorsque votre navigateur fait confiance à un certificat de site web, il vérifie la signature numérique de l'AC, établissant une chaîne de confiance depuis une AC racine jusqu'au certificat de site Web.

Avantages et limites du chiffrement asymétrique

Avantages

  • Distribution simplifiée des clés : Les clés publiques peuvent être partagées ouvertement, éliminant la nécessité d'un canal sécurisé pour échanger une clé symétrique à l'avance.
  • Sécurité évolutive: Dans un réseau d'utilisateurs n, le chiffrement asymétrique ne nécessite que n paires de clés (chaque utilisateur possède une paire).
  • Signatures numériques et non-répudiation[ : Seule la cryptographie asymétrique fournit des signatures vérifiables qui lient un message à une clé privée spécifique.
  • : Des protocoles comme TLS 1.3 utilisent des échanges Diffie-Hellman qui génèrent des clés temporaires, garantissant que le compromis d'une clé privée à long terme ne déchiffre pas les sessions passées.

Limitations

  • Performance: Les opérations asymétriques sont coûteuses en calcul, parfois 1000x plus lentes que le chiffrement symétrique pour des niveaux de sécurité équivalents. C'est pourquoi le chiffrement hybride est utilisé en pratique.
  • Taille des clés: La RSA et d'autres algorithmes nécessitent de grandes tailles de clés (p. ex., 2048 bits ou plus) pour maintenir la sécurité, ce qui augmente le volume de stockage et la transmission.
  • Vulnérabilité quantique : Les deux RSA et ECC sont vulnérables aux attaques par des ordinateurs quantiques à grande échelle mettant en œuvre l'algorithme de Shor. La communauté cryptographique s'emploie à normaliser les algorithmes post-quantique (p. ex. Kyber, Dilithium) pour les remplacer lorsque le calcul quantique devient pratique.
  • Complicité de la gestion des clés: Les clés privées doivent être stockées de façon sécurisée et protégées contre le vol. Une clé privée compromise mine toute sécurité – les messages chiffrés peuvent être déchiffrés, les signatures peuvent être forgées.
  • Aucune authentification inhérente à l'expéditeur pour le chiffrement[: L'utilisation d'une clé publique pour chiffrer ne prouve pas qui a chiffré le message — quiconque avec la clé publique peut chiffrer. L'authentification de l'expéditeur nécessite une signature numérique en plus du chiffrement ou d'un schéma de chiffrement distinct authentifié.

Conclusion

En séparant les rôles de chiffrement et de déchiffrement, la cryptographie asymétrique résout le problème fondamental de la distribution des clés qui a frappé les systèmes symétriques précédents. Les algorithmes comme la cryptographie RSA et la cryptographie elliptique fournissent la machinerie mathématique, tandis que les protocoles comme la TLS, la PGP et la SSH apportent cette machinerie à des milliards d'utilisateurs au quotidien. Cependant, les ingénieurs et les professionnels de la sécurité doivent rester conscients des limites — les frais généraux de rendement, les défis de gestion des clés et la menace imminente de l'informatique quantique.

Pour plus de détails sur les détails techniques et les normes, voir la série NIST SP 800-57 sur la gestion des clés et le Guide de cryptage asymétrique de Cloudflare. Pour un aperçu de la cryptographie de courbure elliptique, voir le Projet de normalisation de la cryptographie post-quantique .