Cryptographie asymétrique
La cryptographie asymétrique, ou cryptographie à clef publique est un domaine relativement récent de la cryptographie. Elle permet d'assurer la confidentialité d'une communication, ou d'authentifier les participants, sans que cela repose sur une donnée secrète partagée entre ceux-ci, contrairement à la cryptographie symétrique qui nécessite ce secret partagé préalable[1].
La cryptographie asymétrique peut être illustrée avec l'exemple du chiffrement à clef publique et privée, dont le but, comme tout chiffrement, est de garantir la confidentialité d'une donnée lors d'une transmission de celle-ci. Le terme asymétrique s'explique par le fait qu'il utilise deux clefs différentes, l'une, la clef publique, pour chiffrer, l'autre, la clef privée, pour déchiffrer. L'utilisateur qui souhaite recevoir des messages engendre un tel couple de clefs. Il ne transmet à personne la clef privée alors que la clef publique est transmissible sans restriction[2]. Quiconque souhaite lui envoyer un message confidentiel utilise la clef publique pour chiffrer celui-ci. Le message chiffré obtenu ne peut être déchiffré que connaissant la clef privée. Il peut donc être communiqué publiquement : la confidentialité du message original est garantie. Le destinataire, qui n'a communiqué à personne sa clef privée, est le seul à pouvoir, à l'aide de celle-ci, déchiffrer le message transmis pour reconstituer le message original[1].
Un problème crucial pour l'émetteur est de s'assurer que la clef publique qu'il utilise est bien celle du destinataire souhaité[1].
Ce système a deux utilisations majeures :
- la confidentialité des messages reçus : c'est celle qu'on vient de décrire, l'expéditeur utilise la clef publique du destinataire pour chiffrer son message. Le destinataire utilise sa clef privée pour déchiffrer le message de l'expéditeur, garantissant la confidentialité du contenu ;
- l'authentification de l'expéditeur d'un message (pas nécessairement confidentiel) : l'expéditeur utilise sa clef privée pour chiffrer un message que n'importe qui peut déchiffrer avec la clef publique de l'expéditeur, ce qui garantit que le message a été chiffré par l'expéditeur, seul à posséder la clef privée ; c'est le mécanisme utilisé par la signature numérique pour authentifier l'auteur d'un message[3].
Historique
Concept
Le concept de cryptographie à clef publique — autre nom de la cryptographie asymétrique — est généralement attribué à Whitfield Diffie et à Martin Hellman qui l'ont présenté au public à la National Computer Conference en 1976[4], puis publié quelques mois plus tard dans New Directions in Cryptography[5]. Le concept aurait cependant été découvert indépendamment par d'autres chercheurs à la même époque.
Ralph Merkle aurait fait la même découverte à la même époque[6], même si ses articles[7] ne furent publiés qu'en 1978.
Mise en œuvre
Dans leur article de 1976, W. Diffie et M. Hellman n'avaient pas pu donner l'exemple d'un système à clef publique, n'en ayant pas trouvé. Il fallut attendre 1978 pour avoir un exemple[8] donné par Ronald Rivest, Adi Shamir et Leonard Adleman, le RSA, abréviation tirée des trois noms de ses auteurs. Les trois hommes fondèrent par la suite la société RSA Security. Le système Merkle-Hellman[9] est généralement considéré comme la première réalisation pratique d'un système de chiffrement à clef publique[10], il a cependant été prouvé non sûr par Shamir en 1982[11].
Recherches secrètes du GCHQ
Parallèlement aux recherches publiques, les services du chiffre britannique (GCHQ, Government Communications Headquarters) auraient mené des recherches secrètes aboutissant à des concepts et outils de chiffrement asymétrique dès la première moitié des années 1970[12] :
- James Ellis, du GCHQ aurait proposé le concept avant Hellman et Diffie;
- Clifford Cocks aurait décrit dès 1973 ce qu'on appelle l'algorithme RSA ;
- Malcolm J. Williamson aurait inventé un protocole d'échange de clef très proche de celui de Diffie et de Hellman dès 1974.
Ces découvertes n'auraient été rendues publiques par le GCHQ qu'en 1997[12].
Fonctionnement
Principe général
La cryptographie asymétrique, ou cryptographie à clef publique est fondée sur l'existence des fonctions à sens unique et à brèche secrète.
Les fonctions à sens unique sont des fonctions mathématiques telles qu'une fois appliquées à un message, il est extrêmement difficile de retrouver le message original.
L'existence d'une brèche secrète permet cependant à la personne qui a conçu la fonction à sens unique de décoder facilement le message grâce à un élément d'information qu'elle possède, appelé clef privée.
Supposons qu'Alice souhaite recevoir un message secret de Bob sur un canal susceptible d'être écouté par un attaquant passif Eve :
- Alice transmet à Bob une fonction à sens unique pour laquelle elle seule connait la brèche secrète ;
- Bob utilise la fonction transmise par Alice pour chiffrer son message secret ;
- Alice réceptionne le message chiffré puis le décode grâce à la brèche secrète ;
- Si Eve réceptionne également le message alors qu'il circule sur le canal public, elle ne peut le décoder, même si elle a également intercepté l'envoi de la fonction à sens unique, car elle n'a pas connaissance de la brèche secrète.
La terminologie classiquement retenue est :
- pour la fonction à sens unique : « clef publique » ;
- pour la brèche secrète : « clef privée ».
En pratique, sont utilisées des fonctions de chiffrement classiques, les termes « clef publique » et « clef privée » correspondant alors à des paramètres employés pour ces fonctions.
Fonctionnement pratique
Alice souhaite pouvoir recevoir des messages chiffrés de n'importe qui.
Diffusion des clefs publiques
Elle génère alors une valeur à partir d'une fonction à sens unique et à brèche secrète à l'aide d'un algorithme de chiffrement asymétrique (liste ici), par exemple RSA[13].
Alice diffuse à tout le monde la fonction pour coder les messages (notée clef publique) mais garde secrète la fonction de décodage (notée clef privée).
Chiffrement
L'un des rôles de la clef publique est de permettre le chiffrement ; c'est donc cette clef qu'utilisera Bob pour envoyer des messages chiffrés à Alice. L'autre clef — l'information secrète — sert à déchiffrer. Ainsi, Alice, et elle seule, peut prendre connaissance des messages de Bob. La connaissance d'une clef ne permet pas de déduire l'autre.
Authentification de l'origine
D'autre part, l'utilisation par Alice de sa clef privée sur le condensat d'un message, permettra à Bob de vérifier que le message provient bien d'Alice : il appliquera la clef publique d'Alice au condensat fourni (condensat chiffré avec la clef privée d'Alice) et retrouve donc le condensat original du message. Il lui suffira de comparer le condensat ainsi obtenu et le condensat réel du message pour savoir si Alice est bien l'expéditeur. C'est donc ainsi que Bob sera rassuré sur l'origine du message reçu : il appartient bien à Alice. C'est sur ce mécanisme notamment que fonctionne la signature numérique.
Analyse fonctionnelle
Le coffre-fort
Le chiffrement : Alice a choisi un coffre-fort. Elle l'envoie ouvert à Bob, et en garde la clef. Lorsque Bob veut écrire à Alice, il y dépose son message, ferme le coffre, il n'a pas besoin de la clef pour cela, et le renvoie à Alice. À sa réception, seule Alice peut ouvrir le coffre, puisqu'elle seule en possède la clef, à supposer le coffre inviolable, et que personne ne puisse refaire la clef.
L'authentification ou la signature : Alice place un message dans le coffre-fort qu'elle ferme avec sa clef privée avant de l'envoyer à Bob. Si Bob parvient à ouvrir le coffre à l'aide de la clef publique d'Alice (dont il dispose), c'est que c'est bien le coffre fermé par Alice puisque la clef de Bob ne permet d'ouvrir que les coffres fermés par Alice. Bob est donc certain que c'est bien Alice qui y a placé le message.
La boîte à deux serrures
Une autre analogie envisageable serait d'imaginer une boîte avec deux serrures différentes. Lorsque l'on ferme la boîte d'un côté, seule la clef correspondant à l'autre serrure permet l'ouverture de la boîte et vice-versa. Une des clefs est privée et conservée secrète, l'autre est dite publique et un exemplaire peut-être obtenu par quiconque souhaite utiliser la boîte.
Pour chiffrer un message Bob prend la boîte, y place son message, et la ferme à l'aide de la clef publique. Seul le détenteur de la clef privée permettant d'accéder à l'autre serrure, Alice en l'occurrence, sera en mesure de rouvrir la boîte.
Pour signer un message, Alice le place dans la boîte et ferme celle-ci à l'aide de sa clef privée. Ainsi n'importe qui ayant récupéré la clef publique pourra ouvrir la boîte. Mais comme la boîte a été fermée par la clef privée, cette personne sera assurée que c'est bien Alice, seule détentrice de cette clef, qui aura placé le message dans la boîte et fermé ladite boîte.
Inconvénients et limites
En contrepartie de leurs propriétés spécifiques, les chiffrements asymétriques sont globalement moins performants que leurs équivalents symétriques : les temps de traitement sont plus longs et, pour un niveau de sécurité équivalent, les clefs doivent être beaucoup plus longues.
Si le chiffrement asymétrique permet de se prémunir des écoutes passives (eavesdrop), la transmission initiale de la clef publique sur un canal non sécurisé expose à des attaques de l'homme du milieu. Pour se prémunir contre ce risque on fait généralement appel à une infrastructure à clefs publiques.
Articulation avec le chiffrement symétrique
La cryptographie asymétrique répond à un besoin majeur de la cryptographie symétrique : le partage sécurisé d'une clef entre deux correspondants, afin de prévenir l'interception de cette clef par une personne tierce non autorisée, et donc la lecture des données chiffrées sans autorisation.
Les mécanismes de chiffrement symétrique étant moins coûteux en temps de calcul, ceux-ci sont préférés aux mécanismes de chiffrement asymétrique. Cependant toute utilisation de clef de chiffrement symétrique nécessite que les deux correspondants se partagent cette clef, c'est-à-dire la connaissent avant l'échange. Ceci peut être un problème si la communication de cette clef s'effectue par l'intermédiaire d'un medium non sécurisé, « en clair ». Afin de pallier cet inconvénient, on utilise un mécanisme de chiffrement asymétrique pour la seule phase d'échange de la clef symétrique, et l'on utilise cette dernière pour tout le reste de l'échange.
Applications
Mécanismes d'authentification
Un inconvénient majeur de l'utilisation des mécanismes de chiffrement asymétriques est le fait que la clef publique est distribuée à toutes les personnes : Bob, Carole et Alice souhaitant échanger des données de façon confidentielle. De ce fait, lorsque la personne possédant la clef privée, Alice, déchiffre les données chiffrées, elle n'a aucun moyen de vérifier avec certitude la provenance de ces données (Bob ou Carole) : on parle de problèmes d'authentification.
Afin de résoudre ce problème, on utilise des mécanismes d'authentification permettant de garantir la provenance des informations chiffrées. Ces mécanismes sont eux aussi fondés sur le chiffrement asymétrique dont le principe est le suivant : Bob souhaite envoyer des données chiffrées à Alice en lui garantissant qu'il en est l'expéditeur.
- Bob crée une paire de clefs asymétriques : il définit une clef privée et diffuse librement sa clef publique (notamment à Alice)
- Alice crée une paire de clefs asymétriques : elle définit une clef privée et diffuse librement sa clef publique (notamment à Bob)
- Bob effectue un condensat de son message « en clair » puis chiffre ce condensat avec sa clef privée
- Bob chiffre une seconde fois son message déjà chiffré avec la clef publique d'Alice
- Bob envoie alors le message chiffré à Alice
- Alice reçoit le message chiffré de Bob (mais qu'un tiers, par exemple Ève, pourrait intercepter)
- Alice est en mesure de déchiffrer le message avec sa clef privée. Elle obtient alors un message lisible sous forme de condensat. Eve quant à elle ne peut pas déchiffrer le message intercepté de Bob car elle ne connait pas la clef privée d'Alice. En revanche Alice n'est pas sûre que le message déchiffré (sous forme de condensat) est bien celui de Bob
- Pour le lire, Alice va alors déchiffrer le condensat (chiffré avec la clef privée de Bob) avec la clef publique de Bob. Par ce moyen, Alice peut avoir la certitude que Bob est l'expéditeur. Dans le cas contraire, le message est indéchiffrable et elle pourra présumer qu'une personne malveillante a tenté de lui envoyer un message en se faisant passer pour Bob
Cette méthode d'authentification utilise la spécificité des paires de clefs asymétriques : si l'on chiffre un message en utilisant la clef publique, alors on peut déchiffrer le message en utilisant la clef privée ; l'inverse est aussi possible : si l'on chiffre en utilisant la clef privée alors on peut déchiffrer en utilisant la clef publique.
Certificats
La cryptographie asymétrique est également utilisée avec les certificats numériques, celui-ci contenant la clef publique de l'entité associée au certificat. La clef privée est quant à elle stockée au niveau de cette dernière entité. Une application des certificats est par exemple la mise en œuvre d'une infrastructure à clefs publiques (PKI) pour gérer l'authentification et la signature numérique d'une entité, par exemple un serveur web (Apache avec le module SSL par exemple), ou simplement un client souhaitant signer et chiffrer des informations à l'aide de son certificat de la façon décrite dans les sections précédentes.
Sécurité
Un chiffrement symétrique au moyen d'une clef de 128 bits propose 2128 (~ 3,4 1038) façons de chiffrer un message. Un pirate qui essaierait de déchiffrer le message par la force brute devrait les essayer une par une.
Pour les systèmes à clef publique, il en va autrement. Tout d'abord les clefs sont plus longues (par exemple 2048 bits minimum pour RSA) ; en effet, elles possèdent une structure mathématique très particulière (on ne peut pas choisir une suite de bits aléatoire comme clef secrète, par exemple dans le cas du RSA, seuls les nombres premiers sont utilisés). Certains algorithmes exploitant cette structure sont plus efficaces qu'une recherche exhaustive sur, par exemple, 1 024 bits. Ainsi, dans le cas de RSA, le crible général des corps de nombres est une méthode plus efficace que la recherche exhaustive pour la factorisation.
Il faut noter le développement actuel de la cryptographie utilisant les courbes elliptiques, qui permettent (au prix d'une théorie et d'implémentations plus complexes) l'utilisation de clefs nettement plus petites que celles des algorithmes classiques (une taille de 160 bits étant considérée comme très sûre actuellement), pour un niveau de sécurité équivalent.
Dans son édition du 6 septembre 2013, le journal The Guardian affirmait que la NSA était capable de déchiffrer la plupart des données chiffrées circulant sur Internet[14]. De nombreuses sources ont cependant indiqué que la NSA n'avait pas mathématiquement cassé les chiffrements mais s'appuierait sur des faiblesses d'implémentation des protocoles de sécurité[15],[16].
Notes et références
- Katz et Lindell 2014, p. 375.
- GPG Handbook
- Katz et Lindell 2014, p. 439.
- Diffie et Hellman juin 1976.
- Diffie et Hellman novembre 1976.
- Menezes, Van Oorschot et Vanstone 1997, p. 47.
- Merkle 1978.
- Rivest, Shamir et Adleman 1978.
- Merkle et Hellman 1978.
- Menezes, Van Oorschot et Vanstone 1997, p. 300.
- Shamir 1983.
- Singh 1999.
- Rivest, Shamir et Adleman 1983.
- Ball, Borger et Greenwald 2013.
- Schneier 2013.
- Simonite 2013.
Annexes
Bibliographie
- [Barthélemy, Rolland et Véron 2005] Pierre Barthélemy, Robert Rolland et Pascal Véron (préf. Jacques Stern), Cryptographie : principes et mises en œuvre, Paris, Hermes Science Publications : Lavoisier, coll. « Collection Informatique », , 414 p., broché (ISBN 2-7462-1150-5, ISSN 1242-7691, OCLC 85891916).
- [Diffie et Hellman juin 1976] (en) Whitfield Diffie et Martin E. Hellman, « Multiuser cryptographic technics », Proceedings of AFIPS National Computer Conference, , p. 109-112 (DOI 10.1145/1499799.1499815).
- [Diffie et Hellman novembre 1976] (en) Whitfield Diffie et Martin E. Hellman, « New directions in cryptography », IEEE Trans. Inf. Theory, vol. 22, no 6, , p. 644-654.
- [Katz et Lindell 2014] (en) Jonathan Katz et Yehuda Lindell, Introduction to Modern Cryptography, 2nd Edition, Boca Raton, Chapman and Hall, , 583 p. (ISBN 978-1-4665-7026-9, lire en ligne), III. Public-Key (Asymmetric) Cryptography.
- [Menezes, Van Oorschot et Vanstone 1997] (en) A. J. Menezes, P. C. Van Oorschot et S. A. Vanstone, Handbook of Applied Cryptography, Boca Raton, CRC Press, coll. « CRC Press Series on Discrete Mathematics and Its Applications », , 780 p. (ISBN 978-0-8493-8523-0, OCLC 247238920).
- [Merkle 1978] (en) Ralph C. Merkle, « Secure communications over insecure channels », Communications of the ACM, vol. 21, , p. 294-299.
- [Merkle et Hellman 1978] (en) Ralph C. Merkle et Martin E. Hellman, « Hiding information and signatures in trapdoor functions », IEEE Trans. Inf. Theory, vol. 24, , p. 525-530.
- [Rivest, Shamir et Adleman 1978] (en) Ronald Rivest, Adi Shamir et Leonard Adleman, « A method for obtaining digital signatures and public-key cryptosystems », Communications of the ACM, vol. 21, , p. 120-126 (lire en ligne).
- [Rivest, Shamir et Adleman 1983] (en) Ronald L. Rivest, Adi Shamir et Leonard L. Adleman, « Cryptographic communications system and method », United States Patent, no 4405829, (lire en ligne).
- [Shamir 1983] (en) Adi Shamir, « A polynomial time algorithm for breaking the basic Merkle-Hellman crypto-system », Advances in cryptology, Proceedings of Crypto 82, , p. 279-288.
- [Singh 1999] Simon Singh (trad. de l'anglais par Catherine Coqueret), Histoire des codes secrets : De l'Égypte des pharaons à l'ordinateur quantique [« The code Book »], Paris, Jean-Claude Lattès, , 430 p. (ISBN 978-2-7096-2048-2, OCLC 43323003), chap. 6 (« Alice et Bernard s'affichent en public »).
Articles connexes
- Cryptographie hybride
- Infrastructures à clefs Publiques (PKI)
- Authentification
- Authentification forte
- Alice et Bob
- Signature numérique
- Chiffrement
- Chiffrement fondé sur l'identité
- Chiffrement par attributs
- Liste d’algorithmes de cryptographie asymétrique
Logiciels de cryptographie asymétrique
- Pretty Good Privacy ou PGP, logiciel existant en versions payante et gratuite (aux fonctionnalités plus réduites).
- GNU Privacy Guard ou GPG ou GnuPG, version Libre (open-source) et gratuite de PGP.
- OpenSSL (Open Secure Socket Layer), version libre et gratuite permettant, notamment, de développer des fonctionnalités à base de chiffrement asymétrique.
- Acid Cryptofiler, logiciel développé par la Délégation Générale pour l'armement pour un usage gouvernemental.
Liens externes
- [Ball, Borger et Greenwald 2013] (en) James Ball, Julian Borger et Glenn Greenwald, « Revealed : how US and UK spy agencies defeat internet privacy and security », sur The Guardian, (consulté le ).
- [Schneier 2013] (en) Bruce Schneier, « The NSA Is Breaking Most Encryption on the Internet », sur Schneier on Security, (consulté le ).
- [Simonite 2013] (en) Tom Simonite, « NSA Leak Leaves Crypto-Math Intact but Highlights Known Workarounds », sur MIT Technology Review, (consulté le ).
- [GPG] (en) « The GNU Privacy Handbook » (consulté le )
- Portail de la cryptologie