diff --git a/algebre-non-lineaire/main.tex b/algebre-non-lineaire/main.tex index cd45f00..12a5e64 100644 --- a/algebre-non-lineaire/main.tex +++ b/algebre-non-lineaire/main.tex @@ -575,9 +575,7 @@ Pour RSA, nous allons voir des équations non linéaires. - \paragraph{Chiffrement} - - Clé de chiffrement (publique)~: $(n,e)$. + \subsection{Chiffrement (clé publique)~: $(n,e)$} \begin{equation*} c = m^e [n] @@ -640,4 +638,70 @@ La complexité est maintenant logarithmique. + \subsection{Déchiffrement (clé privée)~: $(n,d)$} + + émetteur espace public destinataire + partie privée ----> clé publique $(n,e)$ partie privée + formule de chiffrement message en clair $m$, $c=m^e [n]$ + on doit déchiffrer c | + information privée <-------------------------------- + clé privée (n,d) + + \begin{center} + \begin{tikzpicture} % TODO finish + \node [rectangle,draw,thick] + (src) at (0,0) + {\parbox{4cm}{\centering + émetteur \\ + partie privée \\ + information privée \\ + clé privée $(n,d)$ + }} + ; + + \node (key) at (5,0) {\parbox{2.5cm}{\centering fonction de \\ chiffrement}}; + \node [rectangle,draw,thick] + (dst) at (12,0) + {\parbox{4cm}{\centering + destinataire \\ + partie privée \\ + message en clair $m$ \\ + $c = m^e [n]$ + }}; + + \draw [-latex] + (src) -- (key) + node[above,midway]{\parbox{2cm}{\centering$m$ \\ message \\ en clair}} + ; + \draw [-latex] + (dst) -- (src) + node[above,midway]{\parbox{2cm}{\centering$m$ \\ message \\ en clair}} + ; + \end{tikzpicture} + \end{center} + + On connaît $n,e,c$. + On sait que $c=m^e [n]$. + Pour trouver $m$ à partir de $n$, $e$ et $c$, on a besoin du logarithme discret. + En théorie de la complexité, il s'agit d'un \emph{problème difficile}. + On ne sait pas le résoudre efficacement. + La solution mathématique existe, mais il faudrait plusieurs milliards d'années pour la résoudre. + + Pour déchiffrer, on va utiliser une clé privée $(n,d)$. + Le calcul est alors exactement le même que pour le chiffrement~: + + \begin{equation*} + m = c^d [n] + \end{equation*} + + En recevant $c$ (rappel~: $c = m^e [n]$)~: + \begin{align*} + c^d [n] &= (m^e [n])^d [n] \\ + &= m^{ed} [n] + \end{align*} + + Or, pour déchiffrer, il faut obtenir le message en clair, donc \emph{il faut que} $m^{ed} [n] = m [n]$. + On ne peut donc pas choisir $e$ et $d$ au hasard. + $e$ et $d$ sont liés. + \end{document}