next up previous contents index
Next: Correction d'erreurs : le Up: Algorithmes Previous: Information et entropie

      
Cryptographie à clé publique : RSA

La cryptographie a pour but d'assurer la sécurité des données, en les chiffrant afin de les rendre incompréhensibles sans l'usage d'une clé de déchiffrement. Pendant longtemps, la cryptographie a reposé sur l'usage d'une clé secrète, qui devait être partagée par l'émetteur et le récepteur. En 1976, Diffie et Hellman suggérèrent la possibilité d'assurer la confidentialité sans recourir à un secret partagé, au moyen d'une clé connue de tous. Cette idée a profondément transformé la cryptographie. Le système de chiffrement à clé publique RSA, proposé en 1977 par Rivest, Shamir et Adleman, est maintenant couramment utilisé par les systèmes de chiffrement, par exemple par PGP, généralement en complément d'un chiffrement à clé secrète à usage unique. Le développement du commerce électronique et l'irruption de l'Internet dans la vie privée ont entraîné une large diffusion des outils cryptographiques, longtemps réservés à des usages militaires. L'exponentielle modulaire intervient dans les algorithmes de la cryptographie à clé publique, car elle est considérablement plus facile à calculer que son inverse, le logarithme modulaire.

Pour construire ses clés, chaque utilisateur de RSA

Les fonctions de chiffrage et de déchiffrage sont respectivement :

\begin{eqnarray*}C(m) &= &m^e \mathop{\normalfont\mathrm{mod}}\nolimits n \\
D(m) &= &m^d \mathop{\normalfont\mathrm{mod}}\nolimits n
\end{eqnarray*}



 \begin{figurette}% latex2html id marker 5577
\begin{center}
\leavevmode
\fbox{...
... \caption{Transmission de l'information chiffrée.}
\end{center} \end{figurette}

Les fonctions et paramètres d'un utilisateur A sont notés CA, DA, nA, eA, dA ; la fonction de chiffrage CA est connue de tous, tandis que la fonction de déchiffrage DA n'est connue que de A. Soient A et B deux utilisateurs de RSA. Quand A veut communiquer confidentiellement un entier m (0<m<n) à B, il calcule CB(m) à l'aide de la clé publique de B, qu'il envoie à B ; à la réception d'un message chiffré c, B calcule DB(c) à l'aide de sa clé privée. Il s'agit bien d'un déchiffrage car $D_B(C_B(m)) =
C_B(m)^{d_B} \mathop{\normalfont\mathrm{mod}}\nolimits n_B = m^{e_Bd_B}\mathop{\normalfont\mathrm{mod}}\nolimits n = m$, grâce au théorème d'Euler qui assure que $m^{\phi(n)} = 1 \mathop{\normalfont\mathrm{mod}}\nolimits n$ si m est premier avec n, et au fait que $\phi(n)=(p-1)(q-1)$.

La sécurité de ce schéma provient de la difficulté à factoriser de grands entiers. En effet, déterminer d à partir de e demande la connaissance de (p-1)(q-1); or la publication de n=pq n'est en aucune façon une aide pour calculer (p-1)(q-1), qui ne peut être obtenu qu'à partir de p et q. D'autre part, on ne sait pas calculer efficacement des racines e-ièmes, ce qui permettrait d'avoir le texte clair m à partir du texte chiffré C(m). Contrairement à la plupart des autres problèmes, pour lesquels on cherche des algorithmes efficaces, le chiffrement n'est utile que si le problème de déchiffrement est difficile, c'est-à-dire que si tous les algorithmes que l'on peut proposer sont extrêmement inefficaces.

La méthode RSA est également employée pour l'authentification  des données. Si A veut communiquer un entier m (0<m<n) à B et garantir à B qu'il est l'auteur de ce message, il joint à m sa signature  s = DA(h(m)) grâce à sa clé privée et à une fonction de hachage h publique (voir § 2.10, par exemple, la fonction MD5). Recevant m et s de la part de A, Bcalcule à la fois CA(s) grâce à la clé publique de A et h(m) ; normalement, CA(s) = CA(DA(h(m))) = h(m), par le même théorème d'Euler ; donc si B obtient le même nombre par dxes deux calculs, le message est authentifié ; sinon, c'est que A n'en est pas l'auteur, ou bien que m a été altéré au cours de la transmission. La sécurité de ce schéma d'authentification repose sur la difficulté, étant donné h, à trouver m tel que h(m) = h.


 \begin{figurette}% latex2html id marker 5590
\begin{center}
\leavevmode
\fbox{...
...tion{Authentification par signature électronique.}
\end{center} \end{figurette}


next up previous contents index
Next: Correction d'erreurs : le Up: Algorithmes Previous: Information et entropie
R. Lalement
2000-10-23