Chiffrement asymétrique
Le chiffrement asymétrique (Public-key cryptography) est utilisé pour protéger des fichiers, des registres et des disques entiers contre les accès non autorisés ainsi que pour échanger des messages secrets. Pour cela, on utilise des clés (key), pour le chiffrement et le déchiffrement des données.
Retrouvez des informations détaillées sur les échanges sécurisés de données dans notre article sur les procédés de chiffrement.
Contrairement au chiffrement symétrique, les utilisateurs de ce procédé utilisent une clé de chiffrement privée (Private Key) différente. Chaque utilisateur crée sa propre paire de clés de chiffrement, qui se compose d’une clé privée et d’une clé publique. Tout interlocuteur disposant de la clé publique peut envoyer des données chiffrées au propriétaire de la clé privée, vérifier leur signature numérique ou les authentifier. La clé privée peut à son tour chiffrer les données, créer ou authentifier une signature numérique.
Découvrez dans cet article les principes, les fonctions, les domaines d’applications ainsi que les avantages et inconvénients du chiffrement asymétrique.
Qu’est-ce que le chiffrement asymétrique ?
L’origine du chiffrement asymétrique remonte à 1975. Le chiffrement asymétrique est donc un champ très jeune du chiffrement qui est né il y a plus de 2000 ans. Le principal avantage du chiffrement asymétrique est également le principal inconvénient du chiffrement symétrique : les interlocuteurs n’ont pas à se mettre d’accord sur une clé commune, car chacun dispose d’une clé privée différente.
Le problème du chiffrement à clé secrète (chiffrement symétrique) réside dans l’échange de clé. La clé secrète doit parvenir au destinataire et l’acheminement est complexe, fastidieux et peu sécurisé. De plus, la complexité et les failles de sécurité augmentent en fonction du nombre de personnes partageant cette clé.
Le chiffrement asymétrique offre donc une alternative pratique, car chaque utilisateur dispose de sa propre paire de clés.
Principes du chiffrement asymétrique
Dans le cas du chiffrement asymétrique, chaque interlocuteur possède une paire de clés composée d’une clé publique (Public Key) et d’une clé privée (Private Key). Comme pour des clés physiques, ces clés sont liées comme dans un trousseau. Dans ce cryptosystème, les deux clés sont étroitement liées à l’aide d’un algorithme mathématique : les données qui sont chiffrées grâce à la clé publique peuvent uniquement être déchiffrées par la clé privée. Pour garantir la protection des données et le fonctionnement sans entrave du chiffrement asymétrique, il est indispensable que la clé privée reste privée et ne soit connue de personne, pas même des autres interlocuteurs.
En pratique, l’expéditeur de données à besoin de la clé publique du destinataire. La clé publique fonctionne à sens unique dans ce procédé : elle peut chiffrer les données, mais pas les déchiffrer, le déchiffrement n’est réalisable que par la clé privée du destinataire. La clé publique ne sert pas uniquement au chiffrement, elle permet également de vérifier une signature numérique et de vérifier les interlocuteurs.
La transmission de clés se fait lors du premier contact. Dans le même temps, la clé privée crée une signature numérique et peut ainsi être identifiée par les autres interlocuteurs. En d’autres termes, le chiffrement asymétrique permet que chaque participant puisse accéder à la clé publique, mais ne puisse déchiffrer les messages qu’avec la clé privée. Cela permet un échange de donnée hautement sécurisé.
Comment fonctionne le chiffrement asymétrique ?
Pour débuter le chiffrement asymétrique, le destinataire crée sa paire de clés. Il conserve la clé privée et permet à son ou ses interlocuteurs d’accéder à sa clé publique. Cela peut se faire par un simple transport, par une autorité de certification ou par des « Key Server » (c’est-à-dire des serveurs de clés) sur lesquels la clé peut être stockée. L’expéditeur utilise cette clé publique pour encoder son message et peut l’envoyer au destinataire sous forme de « texte chiffré ». À ce stade, le chiffrement du message n’est plus déchiffrable que par la clé privée du destinataire. C’est pour cette raison que le choix du canal de communication est en principe libre : si le message chiffré est intercepté, la personne qui récupère le message ne pourra pas accéder à son contenu.
C’est sur ce fonctionnement à sens unique que repose le système de chiffrement asymétrique. Les deux clés sont complètement indépendantes l’une de l’autre. Même lorsqu’il connait la clé publique, un pirate ne peut pas en déduire d’information sur la clé privée. Pour cela, les clés publiques fonctionnent selon des facteurs premiers clairement définis qui sont multipliés pour obtenir un résultat unique. Exemple de calcul :
23 x 199 = 4 577
La clé privée travaille uniquement avec le résultat de cette opération (dans l’exemple, avec le nombre 4 577). Il est presque impossible de tirer des conclusions sur les facteurs précédents à partir de cette valeur, car il existe d’innombrables possibilités quant à la manière dont cette valeur aurait pu être obtenue. À l’heure actuelle, il n’existe aucun procédé mathématique ou algorithme qui simplifierait le calcul inversé.
Dans cet exemple, seuls des petits facteurs primaires ont été utilisés. En pratique, le chiffrement asymétrique utilise des nombres bien plus importants. C’est ce qui fait du chiffrement asymétrique un procédé aussi sécurisé.
Dans quel cas utilise-t-on le chiffrement asymétrique ?
HTTPS signifie Hypertext Transfer Protocol Secure (protocole de transfert hypertextuel sécurisé), un protocole dans lequel contrairement au Hypertext Transfer Protocol ou HTTP, les données sont chiffrées grâce au chiffrement asymétrique et ainsi envoyées de manière sécurisée.
De plus, les cryptosystèmes asymétriques peuvent être combinés avec des procédures symétriques. Pour cela, les clés sont d’abord échangées grâce au chiffrement asymétrique, puis les communications suivantes seront chiffrées en utilisant le chiffrement symétrique. Ce système de chiffrement hybride est utilisé lorsqu’un utilisateur souhaite bénéficier à la fois de la rapidité d’un système symétrique, mais également de la sécurité d’un système asymétrique.
Exemple de chiffrement asymétrique
Le programme de chiffrement le plus connu est probablement Pretty Good Privacy aussi appelé PGP. Il est basé sur le principe de chiffrement asymétrique et sert à chiffrer les emails. Dans ce cadre, l’installation d’une clé publique et d’une clé privée est générée. Ensuite, la clé publique peut soit être transférée ou mise à disposition dans une base de données centralisée. Celle-ci peut être consultée par les clés individuelles des interlocuteurs. Grâce à la clé publique, l’expéditeur chiffre ses données et identifie l’email ou le message comme étant chiffré grâce à PGP. Le destinataire peut ensuite lire le message grâce à sa clé privée.
OpenPGP a été développé en 1997 comme alternative gratuite à PGP. Ce logiciel en open source dispose de nombreuses extensions qui vont au-delà du champ d’application fonctionnel de PGP.
Les procédés de signature sont également étroitement liés au chiffrement asymétrique. RSA est probablement le procédé le plus connu de ce domaine d’application. Le terme signature désigne le codage du message avec la clé privée. L’expéditeur « signe » son message avec RSA et le code de cette façon. Ensuite, le message peut être envoyé. L’authenticité et l’identité d’un message sont vérifiées par un destinataire grâce à sa clé publique.
RSA est considéré comme le plus vieux, mais le plus sécurisé des procédés de signature. Les alternatives qui génèrent ou reconnaissent les signatures numériques en utilisant une méthode très similaire sont le DSA (Digital Signature Algorithm) et ElGamal.
Le chiffrement avec SSL/TLS est un exemple concret d’un protocole de cryptographie. Ce protocole réseau permet une communication plus sûre, par exemple entre le serveur Web et le navigateur. Il assure dans le même temps une authentification du serveur. À cette fin, SSL/TLS utilise un chiffrement hybride, c’est-à-dire qu’il utilise à la fois la méthode asymétrique et la méthode symétrique. La clé publique est signée par une autorité de certification et le certificat qui en résulte est chiffré. Le certificat ne peut alors être ouvert que par la clé publique de l’autorité de certification. Par exemple, le serveur Web envoie sa clé publique certifiée au navigateur, qui vérifie le certificat. Si le certificat est valide, le navigateur génère une clé symétrique et l’envoie au serveur Web. Tous deux utilisent désormais cette clé commune pour le reste de la session SSL/TLS afin de chiffrer symétriquement leur échange de données.
Quels sont les avantages et les inconvénients du chiffrement asymétrique ?
Le principal inconvénient du chiffrement asymétrique est la lenteur du chiffrement. En outre il demande considérablement plus de puissance de calcul. C’est pourquoi, comme dans l’exemple ci-dessus de chiffrement SSL, un système hybride qui combine le système symétrique et asymétrique a été mis au point. Les anciens problèmes, tels que l’authentification non sécurisée et la grande vulnérabilité aux logiciels malveillants, ont déjà été résolus par les certificats et signatures numériques et les systèmes de cryptographie basés sur l’identification.
Il est recommandé d’avoir recours à un chiffrement hybride afin de bénéficier des avantages des deux systèmes. Le chiffrement asymétrique se charge de la transmission de clés. Cela permet de contourner le transfert fastidieux des clés privées d’un cryptosystème. Le résultat : un chiffrement sûr, rapide et pratique.