• Aucun résultat trouvé

Le chiffrement asymétrique

Dans le document Sécurité Sécurité (Page 66-70)

Nous allons donner ici une première présentation (une seconde présentation, plus technique, prendra place au chapitre 4 page 73) d’une famille de méthodes d’au-thentification, de signature et de chiffrement : lechiffrement asymétrique, famille à laquelle appartiennent notamment les méthodes dites à clé publique. Ces mé-thodes sont aujourd’hui largement utilisées ; nous verrons que l’authentification et la signature sont en fait des usages particuliers du chiffrement, ce pourquoi cette section sort de son cadre initial, qui était l’authentification, pour s’aventurer vers le chiffrement, qui pourrait sembler un sujet assez éloigné.

Pour reprendre les termes de Christian Queinnec dans la préface du présent ou-vrage, l’invention par Withfield Diffie et Martin E. Hellman [37] d’une nou-velle méthode d’échange de clés a permis de résoudre un problème ouvert depuis des millénaires : comment deux personnes, ne se connaissant au préalable pas, peuvent-elles élaborer un secret commun à elles seules en n’ayant échangé que des messages publics ? Cette révolution ouvrait la voie à l’invention par Ronald Ri-vest, Adi Shamir et Leonard Adleman duchiffrement asymétrique[96], qui permet à tout un chacun de publier sur son site Web la clé de chiffrement à utiliser pour lui envoyer un message secret.

Les principes mathématiques du chiffrement asymétrique sont exposés (de fa-çon aussi simple que possible) au chapitre 4 page 73. Nous allons ici expliquer comment il est utilisé et pourquoi il est si intéressant, en le considérant

(provi-soirement donc) comme une boîte noire, ou comme une fonction mathématique nomméeChiffrer, dont la fonction inverse seraitChiffrer1.

Ainsi, six−−−−→Chiffrer y, alorsy Chiffrer

−1

−−−−−→x.

L’idée de base du chiffrement asymétrique, c’est que la fonction Chiffrer est dif-ficilement inversible: calculerChiffrerest (relativement) facile, mais calculer Chif-frer1est très difficile, en pratique impossible.

Nous souhaitons pouvoir faire quatre choses avec notre système de chiffrement : signer un document vérifier l’authenticité d’une signature chiffrer un document à envoyer déchiffrer un document reçu

Nous pourrions ajouter : s’authentifier lors de l’accès à un service, et vérifier une tentative d’authentification. Ce sont des cas particuliers de signature.

Les impératifs à respecter sont les suivants :

la signature électronique doit être difficile à falsifier (en pratique, ce doit être impossible, mais cette impossibilité n’est pas démontrable mathématiquement) ;

en d’autres termes, il doit être difficile de se procurer les dispositifs qui peuvent fabriquer la signature, pour fabriquer par exemple un faux ;

l’authenticité d’une signature doit en revanche être facile à vérifier ;

de même, il doit être difficile de déchiffrer un document chiffré quand on n’en est pas le destinataire légitime, c’est-à-dire en « cassant » le code ;

en revanche il doit être facile de chiffrer un document de sorte que seul son destinataire légitime soit en mesure de le déchiffrer.

Sans anticiper sur le chapitre 4 consacré à une étude plus détaillée des méthodes de chiffrement, et en résumant à l’extrême, on peut énoncer la chose ainsi :

la clé secrèteKsec, qui permettra de signer un document de manière infalsi-fiable ou de déchiffrer un document chiffré, sera un couple de grands nombres premiers :p, q, qui auront chacun de l’ordre de 150 chiffres décimaux ;

la clé publique Kpub, publiée dans un annuaire ou sur un site Web, sera le produit de ces deux nombres :p×q.

En disant cela on glisse sur quelques détails techniques, mais le fond de la question est celui-là. L’idée est la suivante : il est très facile, connaissantpetq, de calculer

p×q, mais très difficile, connaissantp×q, d’en déduirepetqsi ces deux nombres sont suffisamment grands.

Chiffrement et déchiffrement

Si Aïcha veut envoyer un message secretM à Berthold (ces prénoms sont choisis parce que l’auteur est las des sempiternels Alice et Bob), elle récupère la clé pu-blique de Berthold (on chiffretoujoursavec la clé publique du destinataire)Kpub dans l’annuaire de son site Web, par exemple, et le chiffrement consiste en une transformation mathématique simple pour obtenir le chiffréC:

C=Chiffrer(M, Kpubdu destinataire) Pour déchiffrer, Berthold utilise sa clé privée :

M =Chiffrer1(C, Ksecdu destinataire)

Figure 2.1 ChiffreretChiffrer−1

Signature et vérification

Supposons maintenant que le message d’Aïcha ne soit plus secret, mais qu’elle veuille le signer de telle sorte que Berthold soit certain de son origine, donc qu’il émane bien d’elle, et que ce ne soit pas par exemple un faux fabriqué par le mé-chant Jean-Kevin.

Outre sa fonction de chiffrement,Chiffrerest aussi utilisable de façon très simple pour signer de façon sûre et non répudiable un document. Il est important qu’une signature ne puisse pas être répudiée, c’est-à-dire que le signataire ne puisse pas prétendre qu’il n’est pas l’auteur du document signé, que cette signature n’est pas son œuvre. La qualité de résistance à la répudiation doit résider dans une preuve de la signature, détenue par le destinataire du document signé, vérifiable par un tiers, et inaltérable par le signataire. Pour conférer cette qualité prisée à sa signature, il suffit que le signataire la chiffre avec sa clé privée: le destinataire la déchiffrera avec la clé publique du signataire, et si le déchiffrement réussit ce sera la preuve que la signature est authentique, en d’autres termes une authentification sûre.

Une autre méthode consiste à signer un « résumé numérique » du message. Ce résumé, appelécondensat, est produit par un algorithme de condensation, tel MD5 créé par Ronald Rivest, ou SHA (Secure Hash Standard FIPS 180-1). Le principe d’une fonction de condensation (parfois appeléehachage) est le suivant : soientM etM deux messages, etHla fonction :

1. siM 6=M, la probabilité queH(M) =H(M)est très voisine de0; 2. quel que soitM, il est difficile de trouver unM 6= M tel queH(M) =

H(M).

Cette propriété d’un algorithme de condensation que l’on ne puisse pas trouver facilement deux textes différents qui donnent le même résumé est appelée la résis-tance aux collisions, elle est essentielle.

Un auteur peut par conséquent signer en calculant le condensat de son message, en le chiffrant grâce à sa clé privée puis en le diffusant. Tout détenteur de sa clé publique et du message sera en mesure de vérifier la signature.

Outre une signature non répudiable, ce procédé garantit en pratique l’intégrité du message.

La signature est effectuée en deux temps :

Le logiciel (de courrier électronique, par exemple) de l’ordinateur d’Aïcha cal-cule un résumé du message selon un des algorithmes convenus et publics, tels que MD5 ou SHA-1, qui répondent aux conditions suivantes :

connaissant le résuméRd’un messageM, il est très difficile de fabriquer un messageMdifférent auquel corresponde le même résuméR;

la probabilité que deux messages donnent le même résumé est très faible.

Aïcha chiffre le résumé avec sa cléprivée.

Lorsque Berthold reçoit le message d’Aïcha, il fait deux choses (ou plutôt c’est son logiciel de courrier électronique qui le fait) :

il déchiffre le résumé chiffré avec la clépubliqued’Aïcha ;

il calcule le résumé du message par le même algorithme qu’Aïcha ;

si les deux résumés sont égaux, le message a bien été signé par Aïcha, seule détentrice de sa clé privée.

Dans le cas d’un message chiffré ou signé envoyé à plusieurs destinataires, les méthodes utilisées en pratique emploient des algorithmes propres à éviter de re-produire le corps du message en autant d’exemplaires que de destinataires ; ces méthodes sont décrites à la page 174.

Comprendre les failles et les attaques

Dans le document Sécurité Sécurité (Page 66-70)