les dossiers de l’ afis44
DOSSIER : MATHEMATIQUES
document : la cryptographie sur Internet ( l’algorithme R S
A )
la
cryptographie sur internet ( système RSA )
introduction
Que de chemin parcouru depuis que le centre d’études et de recherches nucléaires
a permis l’usage au public de son logiciel world wide web. Ce n’était qu’en 1993 … L’usage de la toile s’est répandu et les
administrations ou les entreprises, tout comme les particuliers ont vite mesuré
le côté pratique de pouvoir réaliser des opérations (achats de biens ou de
services, paiements, virement bancaires, consultations de comptes, déclarations
administratives diverses, etc.) « en ligne ».
L’opération « en ligne » elle-même n’est pas bien
difficile ; la difficulté réside dans la sécurité de la transaction. En
effet on se trouve ainsi face au problème classique de la transmission
d’information que l’on veut confidentielle par un canal qui est peu sûr. C’est
ce que nous évoquions dans l’introduction à la
cryptographie que nous présentons sur ce site :
« La confidentialité du message proprement dite sera obtenue par
l'opération de chiffrement à l'aide d'une "clef", chiffrement rendant
le message a priori incompréhensible par quiconque aurait accès à ce message
chiffré. Pour pouvoir restaurer le texte clair il faut utiliser la
"clef" de déchiffrement.
Message |
|
chiffrement |
|
|
|
|
|
déchiffrement |
|
Message |
Clair |
|
du message |
|
|
|
|
|
du message |
|
Clair |
|
|
Clef chiffrante |
|
|
Transmission par canal peu sûr |
|
|
Clef déchiffrante |
|
|
Le tiers intéressé, le plus souvent avec des intentions inamicales, s'investira
dans l'interception de la communication puis le décryptage ( c'est là l'objet
des cryptanalystes ) du message. »
Ainsi, suivant le mode « classique », l’émetteur et le
receveur conviennent d’une seule et même clef, servant à la fois de clef chiffrante
et de clef déchiffrante. C’est ce qu’on appelle une « cryptographie à clef
privée ».
D’un point de vue cryptographie il n’y a aucune difficulté. Par contre
la transmission sûre par le destinataire de la clef à l’émetteur n’est pas chose
aisée, surtout à grande échelle.
D’où l’idée d’utiliser plusieurs clefs : une ultra confidentielle
qui ne quittera pas la banque (pour rester dans cet exemple) ; et une
autre qui peut voyager sans difficulté car ne servirait en pratique à rien pour
celui qui n’a pas la première. Cette deuxième
clef peut être « publique ».
Evidemment, si ça marche, on imagine facilement que c’est plus
pratique mais l’idée semble farfelue et présenter un vice logique :
comment un chiffrement avec une clef publique pourrait-il assurer la
confidentialité des informations ?
En
1977, trois mathématiciens (Ronald Rivest, Adi Shamir et Léonard Adleman)
décidèrent de travailler ensemble pour prouver que la nouvelle technologie de
cryptographie à clé publique est une impossibilité logique.
Ils
ne réussirent pas …
et,
au contraire, mirent au point un nouvel algorithme de cryptographie à clef
publique qui supplanta le seul existant auparavant : c’est le RSA.
Ne
restaient plus qu’à attendre que quelques améliorations de la technologie des
ordinateurs et leur large diffusion dans le public pour que 25 ans après
l’algorithme RSA devienne utilisé dans plus de 300 millions de programmes, dont
le noyau de Windows, de Mac OS, les logiciels de messagerie électronique et de
carte de crédit en France etc.
RSA : la succession des opérations
Cette
présentation se veut une présentation de vulgarisation scientifique. Nous
essaierons donc de ne poser que des assertions vraies (en glissant sur les
démonstrations). Nous rencontrerons néanmoins des notions plus ou moins
compliquées d’arithmétique. Quelques éclairages ou approfondissements seront
disponibles au fil du texte si vous cliquez sur les liens jaunes. Pour revenir au texte il suffit
d’utiliser le retour du navigateur. Néanmoins le texte devrait pouvoir se lire
sans faire appel à (l’essentiel de) ces éléments additionnels. Des sites
désormais multiples et souvent plus excellents les uns que les autres
permettront d’approfondir pour ceux qui le souhaiteraient. quelques liens
seront donnés.
Bob veut qu’Alice lui adresse un message
confidentiel
Il y a deux clés: une de codage et une de décodage,
dont l’une ne se déduit qu’extrêmement difficilement l’une de l’autre.
Appelons Bob celui qui souhaite recevoir un
message, et Alice celle qui va le lui envoyer.
Bob crée les deux clefs: celle de codage et celle
de décodage. Il garde pour lui la clef de décodage, et envoie la clef de codage
à Alice. Alice code le message avec la clef publique et envoie le message codé
à Bob, qui seul a la clef de décodage, et donc peut décoder.
Bob crée les deux clefs
Résumé : Bob va
choisir deux nombres premiers qu’il gardera bien sûr secrets. A partir de ces deux
nombres il va faire certaines opérations (que nous allons voir) qui vont lui
donner trois nombres, deux qu’il va communiquer à Alice (ce sera la clef
publique) et un qu’il gardera pour déchiffrer le message d’Alice (ce sera sa
clef privée). Le degré de protection donné par le système proviendra de la
difficulté pour un tiers malveillant de retrouver les deux nombres choisis
initialement par Bob.
|
|
|
Exemple chiffré |
1 |
Bob choisit deux nombres premiers p et q distincts |
|
Dans la pratique il
est fait usage de grands nombres (au moins 100 chiffres chacun) mais le
principe marche aussi avec des petits nombres et c’est plus facile à
manipuler; choisissons donc p = 13 et q = 17 |
2 |
Il les multiplie
entre eux ; cela donne le nombre n ( n = p x q). Ce nombre n fait partie des deux nombres constituant la
clef publique. |
|
n = 13 x 17 = 221 |
3 |
Il multiplie ensuite
le prédécesseur de p par le prédécesseur de q. Nous appellerons ce
nombre m m = (p-1) x (q-1) Ce nombre est en
réalité j(n) qui est la valeur de l’indicateur PHI d’EULER pour le nombre n. |
|
m = 12 x 16 =
192 |
4 |
Il choisit un nombre
entier, que l’on appellera e, plus grand que 2, plus petit que m et premier avec lui. |
|
choisissons par exemple
e = 5 (dans
l’exemple, tout nombre compris entre 2 et 192 qui n’aurait pas été divisible
ni par 2 ni par 3 aurait fait l’affaire ; il y en a beaucoup) |
5 |
Il choisit alors la
clef de décodage d.
Cette clef doit être telle
que si on la multiplie par le nombre e que l’on vient de choisir et qu’on divise
le résultat de cette multiplication par le nombre m, le reste de la division soit
égal à 1 (en langage mathématique, le produit e x d doit être congru à 1 modulo m). On utilise, pour
trouver d
une technique dénommée « algorithme d’Euclide étendu » |
|
Dans le cas présent la clef de déchiffrage
est le nombre 77 (en
effet : 77 x 5 = 385 ; 385 divisé par 192 égale 2 et il reste 1 ) |
6 |
Bob a donc ses deux
clefs. Il communique à Alice
qu’il utilisera l’algorithme RSA et lui donne les deux nombres de la clef
publique n
et e. Il conserve
précieusement pour lui les nombres p et q, bien sûr, et le nombre d qui lui servira au déchiffrement |
|
Clef publique :
(RSA, 221,
5) Clef privée : 77 |
Alice chiffre puis crypte le message
Page en cours de création
afis, Science et
pseudo-sciences, 14 rue de l'école polytechnique, 75005 PARIS.