• Aucun résultat trouvé

Le chiffrement asymétrique à clé publique

Dans le document Sécurité Sécurité (Page 102-106)

La méthode de Diffie et Hellman permet l’échange de clés, mais elle impose une concertation préalable entre les acteurs. Parfois ce n’est pas pratique : si Aïcha veut envoyer à Boris un courrier électronique chiffré pendant qu’il est en vacances, elle sera obligée d’attendre son retour pour établir la clé avec lui.

Whitfield Diffie avait eu une autre idée, pour laquelle il n’avait pas trouvé de solu-tion mathématique appropriée : un système où l’on utiliserait une clé pour chiffrer et une autre pour déchiffrer. Ainsi, Boris proposerait à Aïcha une clé de chiff re-ment, avec laquelle elle coderait le message, et Boris le décoderait avec une clé différente, la clé de déchiffrement. La clé de chiffrement ne permet que de chif-frer, même Aïcha serait incapable de déchiffrer son propre message avec cette clé, seul Boris le peut avec sa clé de déchiffrement. Comme la clé de chiffrement ne fonctionne que dans un sens, elle permet de créer des secrets mais pas d’en dévoi-ler, et elle peut donc être publique, inscrite dans un annuaire ou sur un site Web.

Quiconque veut envoyer un message chiffré à Boris peut la prendre et l’utiliser.

Il faut seulement être sûr que personne ne pourra calculer la clé de déchiffrement à partir de la clé de chiffrement. Et là l’intuition mathématique est décisive.

Si l’idée du chiffrement asymétrique à clés publiques revient à Diffie et Hellman (sans oublier les précurseurs britanniques tenus au secret), la réalisation de cette idée revient à Rivest, Shamir et Adleman : ils ont trouvé une solution

mathéma-Figure 4.3 Principe du chiffrement asymétrique

tique permettant sa mise en œuvre et nommé cette solution[96]de leurs initiales : RSA.

Une personne désireuse de communiquer selon cette méthode doit procéder ainsi : 1. Prendre deux nombres premiersp et q. En cryptographie réelle on choi-sira de très grands nombres, de150chiffres décimaux chacun. Nous allons donner un exemple avecp= 3etq= 11.

2. Calculern=pq, soit dans notre exemplen= 33.

3. Calculerz= (p1)(q1). (Ce nombre est la valeur de la fonctionφ(n), dite fonction phi d’Euler, et on notera qu’elle donne la taille du groupe multiplicatif modulon,Zn). Dans notre exemplez= 20.

4. Prendre un petit entier e, impair et premier avec z, soit e = 7. Dans la pratique,esera toujours petit devantn2.

5. Calculer l’inverse dee (modz), c’est-à-diredtel quee.d= 1 modz. Les théorèmes de l’arithmétique modulaire nous assurent que, dans notre cas,d existe et est unique. Dans notre exempled= 3.

6. La paireP = (e, n)est la clé publique.

7. Le tripletS = (d, p, q)est la clé privée.

Voyons ce que donne notre exemple. La clé publique de Boris est donc(7,33). Aïcha veut lui envoyer un messageM, disons le nombre19. Elle se procure la clé publique de Boris sur son site Web et elle procède au chiffrement de son message M pour obtenir le chiffréCcomme ceci :

C =P(M) =Memodn C =P(19) = 197 mod 33 = 13

Pour obtenir le texte clairT, Boris décode avec sa clé secrète ainsi : T =S(C) =Cdmodn

T =S(13) = 133 mod 33 = 19 Miraculeux, non ? En fait c’est très logique :

S(C) = Cdmodn

= (Me)dmodn

= Me.dmodn

= M modn

Le dernier résultat,Me.d =M (modn)découle du fait queeetdsont inverses modulon, il se démontre grâce au petit théorème de Fermat.

À quel type d’attaque est exposé RSA ? Un espion ( Jean-Kevin par exemple) pourra obtenir la clé publique de Boris P = (e, n), qui a servi à chiffrer M, ainsi que le message chiffré,C. Pour trouverM l’équation à résoudre est :

C =Me modn

2. eest ditpremier aveczs’ils n’ont aucun diviseur commun autre que1et−1, et on dira quee est petit devantns’il est beaucoup plus petit quen.

n,Ceteétant connus. Encore une fois, dans le monde des réels, la solution est tri-viale :M =e

C. Mais dans le monde modulaire la solution estM =e

Cmodn, et il n’y a pas d’algorithme rapide connu pour la calculer, même pour de petites valeurs de e. Ainsi, trouver la racine cubique modulo n d’un nombre y est un problème qui n’est toujours pas résolu.

En fait la seule attaque possible (outre la recherche de failles de réalisation du lo-giciel) consisterait à trouver p et q par recherche des facteurs de n, ce que l’on appelle la factorisation du nombre n. La factorisation permettrait de calculer z=φ(n) = (p−1)(q1). Le nombre secret d est tel quee.d 1 modz. d est un nombre du même ordre de grandeur quez, soit un nombre de mille chiffres binaires. Ce calcul serait réalisable, mais l’obstacle est que la factorisation n’est pas un problème résolu, et qu’il est donc impossible, dans le cas général, de calculerp, qetz.

Les réalisations industrielles ont longtemps utilisé, et utilisent parfois encore e= 3. De nos jours e = 216+ 1 = 65 537 est populaire. Avec un tel choix,d est du même ordre de grandeur quen, soitd≈21024. L’élévation à une puissance de cet ordre peut être réalisée efficacement par des algorithmes de type « éléva-tion au carré et multiplicaéléva-tion »(square and multiply), qui prennent moins d’une seconde dans une carte à puce.

POUR EN SAVOIR PLUS

Le lecteur trouvera des explications mathématiques supplémentaires dans l’ouvrage de Cormen, Leiserson et Rivest (le R de RSA)[32]ou dans celui de Menezes, van Oorschot et Vanstone[79], ou encore, de façon plus abordable, dans ceux de Gilles Dubertret[40]ou d’Albert Ducrocq et André Warusfel[41], ou encore de Michael W. Lucas[78]. Au demeurant, il est stupéfiant de constater que les découvertes prodigieuses de Diffie, Hellman, Merkle, Rivest, Shamir et Adleman reposent sur des bases mathématiques déjà entièrement établies par Leonhard Euler (1707–1783), sinon par Pierre de Fermat (1601–1665), et que, hormis Donald Knuth dans les années 1960, personne n’y avait pensé avant. Et si personne n’y avait pensé, c’est qu’avant l’invention de l’informatique moderne les méthodes cryptographiques dont nous venons de donner un bref exposé étaient non seulement irréalisables, maisimpensables.

Dans le document Sécurité Sécurité (Page 102-106)