Skip to content
Snippets Groups Projects
Commit 3d7082d0 authored by adrian.spycher's avatar adrian.spycher
Browse files

add rapport méthode de résolution

parent d2e731d0
No related branches found
No related tags found
No related merge requests found
......@@ -240,6 +240,81 @@ bmargin=1.25in]{geometry}
% question « pourquoi est-ce le cas » et, si la réponse n'est pas triviale, expliquez (parfois, 3 mots
% suffisent !).
% TODO : add bibliogrpahy
Pour pouvoir cracker cette clefs RSA, nous avons utilisé la méthode de la factorisation de Fermat.
C'est un algorithme de décomposition en produit de facteurs premiers d'un entier naturel, autrement dit, il va nous aider à retrouver $p$ et $q$ qui composent $n$.
Cette algorithme dit que tout entier naturel impair $n$ se décompose en la différence de deux carrés qui peuvent être ensuite factorisé, on obtient :
\[
n = a^2 - b^2 = (a + b)(a - b) = p \cdot q
\]
Dans notre cas, on assicie la valeur de $p$ à $a + b$ et la valeur de $q$ à $a - b$.
Si $p$ et $q$ sont tout deux différents de 1, alors ce sont des facteurs non triviaux de $n$.
Autrement, on se retrouverait avec $n = n \cdot 1$, qui signifirait que $n$ est premier.
Algébriquement, on voit que
\[
b^2 = a^2 - n
\]
Sachant que $a$ et $b$ sont deux nombre entier, on cherche une valeur de $a$ qui vérifie que $b^2$ ait une racine entière.
Le point de départ de $a$ serra $\ \sqrt[]{n} \ $ arrondis au supérieur, car en-dessous, $b^2$ serait inférieur ou égale à 0, ce qui est impossible.
\newpage % prettier
L'algorithme que nous avons fait se présente alors sous cette forme :
\begin{figure*}[!h]
\centering
\begin{subfigure}{.5\linewidth}
\begin{algorithmic}
\setstretch{1.3}
\Procedure{Fermat factorization}{$n$}
\State $a \gets $ ceil($\ \sqrt[]{n} \ $)
\State $\text{b2} \gets a^2 - n$
\While {b2 is not square}
\State $a \gets a + 1$
\State $\text{b2} \gets a^2 - n$
\EndWhile
\State $b \gets \sqrt[]{\text{b2}}$
\State \Return $a, b$
\EndProcedure
\end{algorithmic}
\end{subfigure}
\end{figure*}
% TODO : add bibliogrpahy
Pour savoir si $b^2$ avait une racine entière, nous avons utilisé une méthode que nous avons retrouver sur \textit{StackOverflow} qui est basé sur l'algorithme Babyloniens.
Qui, en passant les détails, parcours différentes valeurs possibles calculé par rapport au nombre donnée.
Si les valeurs testé ne sont pas la racine, c'est que la racine n'est pas entière.
Après avoir récupérer $p$ et $q$, nous pouvons retrouver la clef privée $d$, notamment, en calculant la valeur de $\phi$ :
\[
\phi = (p - 1) \cdot (q - 1)
\]\[
d = \text{l'inverse modulaire de } \phi \text{ de } e
\]
On peut maintenant alors décodé le message en clair $M$ en utilisant l'exponentiation rapide de sur le message chiffré $\mu$.
\[
M \equiv_n \: \mu^d
\]
Et c'est comme ça que nous avons déchiffré le message.
% --- Section 2.3 : Application ---
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment