| Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées | ||||||
| Sommaire |
La cryptographie asymétrique, ou cryptographie à clé publique est fondée sur l'existence de fonctions à sens unique — c'est-à-dire qu'il est simple d'appliquer cette fonction à un message, mais extrêmement difficile de retrouver ce message à partir du moment où on l'a transformé.
En réalité, on utilise en cryptographie asymétrique des fonctions à sens unique et à brèche secrète. Une telle fonction est difficile à inverser, à moins de posséder une information particulière, tenue secrète, nommée clé privée.
À partir d'une telle fonction, voici comment se déroulent les choses : Alice souhaite pouvoir recevoir des messages chiffrés de n'importe qui. Elle génère alors une fonction à sens unique et à brèche secrète à l'aide d'un algorithme de chiffrement asymétrique (liste ici), par exemple RSA.
Elle la diffuse, mais garde secrète l'information permettant d'inverser cette fonction. On parle de clé publique pour celle qu'on diffuse (sans avoir à se préoccupper de sa sécurité) et de clé privée pour l'information secrète (qui doit rester la proprièté exlusive d'Alice).
Le rôle de la clé publique est de permettre le chiffrement ; c'est donc cette clé qu'utilisera Bernard pour envoyer des messages chiffrés à Alice. L'autre clé — l'information secrète — sert à déchiffrer. Ainsi, Alice, et elle seule, peut prendre connaissance des messages de Bernard, à condition que la brèche ne soit pas trouvée.
Alice a choisi un coffre-fort. Elle l'envoie ouvert à Bernard, et en garde la clé. Lorsque Bernard veut écrire à Alice, il y dépose son message, ferme le coffre, et le renvoie à Alice. À sa réception, seule Alice peut ouvrir le coffre, puisqu'elle seule en possède la clé, à supposer le coffre inviolable, et que personne ne puisse retrouver la clé.
D'autre part, l'utilisation par Alice de sa clé privée sur le condensat d'un message, permettra à Bernard de vérifier, en appliquant au résultat la clé publique d'Alice (et en retrouvant donc ce condensat) que nulle autre qu'Alice a pu signer ce message. C'est ainsi que Bernard sera rassuré sur l'origine du message reçu : il appartient bien à Alice.
La cryptographie asymétrique répond à un besoin majeur de la cryptographie symétrique : le partage sécurisé d'une clé entre deux correspondants, afin de prévenir l'interception de cette clé 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 couteux en temps de calcul, ceux-ci sont privilégiés aux mécanismes de chiffrement asymétrique. Cependant toute utilisation de clé de chiffrement symétrique nécessite que les deux correspondants se partagent cette clé, c'est-à-dire la connaissent avant l'échange. Ceci peut être un problème si la communication de cette clé 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 clé symétrique, et l'on utilise cette dernière pour tout le reste de l'échange.
Un inconvénient majeur de l'utilisation des mécanismes de chiffrement asymétriques est le fait que la clé publique est distribuée à toutes les personnes, Bob, Carole ... souhaitant échanger des données de façon confidentielle, et donc lorsque la personne possédant la clé privée, Alice, déchiffre les données chiffrées, celle-ci n'a aucun moyen de vérifier avec certitude la provenance de ces données (Bob, ou Carole ...). On parle ici 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 fondés sur le chiffrement asymétrique.
Principe d'authentification par chiffrement asymétrique :
Objectif : Bob souhaite envoyer des données chiffrées à Alice en garantissant la provenance de celles-ci (authentification des messages).
Si le message reçu et dé-chiffré par Alice provient effectivement de Bob, le message dé-chiffré deux fois sera un message
« lisible », signe que l'expéditeur du message est bien Bob. En effet, seule la clé privée de Bob qui est unique :
KprB, chiffre le message de telle façon qu'une fois dé-chiffré par Alice à l'aide de la clé publique de
Bob : KpuB, celui devient lisible. Dans le cas contraire le message ne sera pas « lisible »
car il n'aura pas été chiffré avec la clé privée de Bob et cependant dé-chiffré avec la clé publique de Bob (possédée par Alice).
On en conclut que Bob n'est pas l'expéditeur du message.
On remarque ici, que la clé publique a un rôle double puisqu'elle permet de chiffrer des données (lors du chiffrement conventionnel) mais aussi de déchiffrer des données (lors d'une authentification).
Un chiffrement symétrique au moyen d'une clé de 128 bits propose 2128 (un nombre à trente-huit chiffres) façons de chiffrer un message. Un pirate qui essaierait de décrypter le message par la force brute devrait donc les essayer une par une.
Pour les systèmes à clé publique, il en va autrement. Tout d'abord les clés sont plus longues (par exemple 1024 bits minimum pour RSA) ; ceci est dû au fait qu'elles possèdent une structure mathématique très particulière (on ne peut choisir une suite de bits aléatoire comme en clé secrète.) Ensuite, il y a clairement mieux à faire qu'une recherche exhaustive sur, par exemple, 1024 bits, à savoir exploiter la structure mathématique de la clé (pour RSA, cela mène à 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 clés 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.
Le concept de cryptographie à clé publique — autre nom de la cryptographie asymétrique — est dû à Whitfield Diffie et à Martin Hellman. Il fut présenté pour la première fois à la National Computer Conference en 1976, puis publié quelques mois plus tard dans New Directions in Cryptography.
Dans leur article de 1976, W. Diffie et M. Hellman n'avaient pas pu donné l'exemple d'un système à clé publique, n'en ayant pas trouvé. Il fallut attendre 1978 pour avoir un premier exemple, dans l'article A Method for Obtaining Digital Signatures and Public-key Cryptosystems de Ronald Rivest, Adi Samir et Leonard Adelman, le RSA, abréviation tirée des trois noms de ses auteurs. C'est du moins la version académique.
En réalité, James Ellis, qui travaillait au service du chiffre britannique (GCHQ, Government Communications Headquarters), avait eu cette idée peu avant. En 1973, C.C. Cocks décrivit (pour le même service du chiffre) ce qu'on a appelé l'algorithme RSA. Enfin, en 1974, M. J. Williamson invente un protocole d'échange de clé très proche de celui de Diffie et de Hellman. Ces trouvailles n'ont été rendu publiques qu'en 1997 par le GCHQ.


