Skip to content
Snippets Groups Projects
Commit 6a300594 authored by gawen.ackerman's avatar gawen.ackerman :robot:
Browse files

conclusion

parent f1d3d65b
Branches
No related tags found
No related merge requests found
......@@ -16,7 +16,13 @@ et sert de méthode d'encryption de données textes. Son fonctionnement est asym
Dans notre cas, afin de déchiffrer le message chiffré transmis par email, nous allons utiliser diverses méthodes mathématiques vues en cours.
Dans la suite de ce document, nous allons approfondir ces méthodes mathématiques en expliquant en quoi elles nous aident et comment nous les avons implémentées de manière algorithmique. Pour terminer, nous allons vous montrer les résultats obtenus par le biais de notre méthode de résolution en concluant le projet.
Dans la suite de ce document, nous allons approfondir ces méthodes mathématiques en expliquant en quoi elles nous aident et comment nous les avons implémentées de manière algorithmique.
Avec les données interceptées ainsi que notre méthode de résolution voici ce que l'on a pu percevoir.
`De toutes façons, les réunions de la Table Ronde c'est deux fois par mois. Donc, si le mec il dit après-demain à partir de dans deux jours, suivant s'il le dit à la fin du mois, ça reporte.`
Pour terminer ce document, nous allons vous montrer conmment nous avons fait, puis allons conclure le projet.
## Méthodologie
......@@ -40,13 +46,13 @@ Pour récupérer les coefficients de Bézout on utilise deux entiers naturels no
On va ensuite itérer tant que le `reste actuel` est plus grand que 0. Dans chaque itération on va ajouter au `tableau des restes` le `reste de la division entière` de l'avant dernier et du dernier élément de l'index courant.
$`r[i - 2] mod\, r[i - 1]`$
$r[i - 2] mod\, r[i - 1]$
Si le reste à l'indice actuel est plus grand que 0, alors on ajoute au tableau des `x` et `y` les calculs suivants :
$`x[i - 2] - q[i] * x[i - 1]`$
$x[i - 2] - q[i] * x[i - 1]$
$`y[i - 2] - q[i] * y[i - 1]`$
$y[i - 2] - q[i] * y[i - 1]$
Pour terminer, on retourne les deux derniers points stockés en `x` et `y`.
......@@ -60,11 +66,11 @@ Chaque nombre possède au maximum un seul inverse modulaire, mais il se peut qu'
Une fois récupérés on vérifie que le produit de `a` et du premier coefficient de Bézout modulo `n` est égal à 1.
$`a * coefficients[0] mod\, n`$
$a * coefficients[0] mod\, n$
Si c'est le cas, cela signifie qu'on a trouvé l'inverse modulaire que l'on va ensuite retourner.
$`coefficients[0] mod\, n`$
$coefficients[0] mod\, n$
#### Exponentiation modulaire
......@@ -72,7 +78,7 @@ Afin de calculer la puissance modulaire, nous avons besoin d'une `base` ($14$),
La premier étape c'est de décomposer l'`exposant` en puissance de 2.
$`64+32+8+4=108`$
$64+32+8+4=108$
La deuxième étape consiste à construire la table des puissances. Pour cela on met en puissance la `base` par chaque puissance de 2 jusqu'à la dernière calculée précédemment (dans notre exemple $1$ jusqu'à $64$).
......@@ -89,11 +95,11 @@ La deuxième étape consiste à construire la table des puissances. Pour cela on
La troisième étape on reprend la décomposition de l'étape 1 et on calcul cette dernière à partir du tableau de l'étape 2.
$`14^{108} = 14^{64} * 14^{32} * 14^8 * 14^4`$
$14^{108} = 14^{64} * 14^{32} * 14^8 * 14^4$
$`14^{108} mod\, 22 ≡ (4 * 20 * 16 * 4) mod\, 22 ≡ 5120 mod\, 22`$
$14^{108} mod\, 22 ≡ (4 * 20 * 16 * 4) mod\, 22 ≡ 5120 mod\, 22$
Le résultat de notre exemple est donc $`5120 mod\,22 = 16`$
Le résultat de notre exemple est donc $5120 mod\,22 = 16$
Dans un premier temps, on va vérifier si l'`indice modulaire` est égal à 1 et si c'est le cas on retourne 0 car il n'est pas possible de calculer la puissance modulaire dans ce cas de figure.
......@@ -108,11 +114,11 @@ RSA est un chiffrement asymétrique, il existe donc toujours deux clés, la prem
### Méthode de résolution
Nous avons commencé par calculer les valeurs de `p` et `q` afin de calculer l'exposant `d` à l'aide de l'inverse modulaire de `e` et de l'`indicatrice d'Euler`. Ensuite on va parcourir pour chacun des blocs, nommé `x`, du message on calcule la puissance modulaire de $`x^d\, mod\, n`$ que l'on convertit en bytes afin de le décoder en UTF-8 pour l'ajouter à la version décodée. Une fois tous les `x` parcourus, on affiche la version du message décodée.
Nous avons commencé par calculer les valeurs de `p` et `q` afin de calculer l'exposant `d` à l'aide de l'inverse modulaire de `e` et de l'`indicatrice d'Euler`. Ensuite on va parcourir pour chacun des blocs, nommé `x`, du message on calcule la puissance modulaire de $x^d\, mod\, n$ que l'on convertit en bytes afin de le décoder en UTF-8 pour l'ajouter à la version décodée. Une fois tous les `x` parcourus, on affiche la version du message décodée.
## Résultat
- Présentation de votre réalisation.
Dans cette section, nous allons aborder les résultat obtenus.
### Sortie
En appliquant notre méthode de résolution aux données fournies par email. Voici le message déchiffré :
......@@ -125,11 +131,22 @@ on peut appliquer la méthode de force-brute pour la résolution de P et Q.
### Explication
La raison pour laquelle on arrive à décoder un message aussi rapidement est due à l'utilisation des mathématiques modulaires. À l'aide du modulo, on travaille avec des petits chiffres ce qui réduit la complexité des calculs que doit faire la machine.
## Conclusion
Le but principale de ce projet était de déchiffré un message à l'aide des outils mathématiques vu en cours.
Ces derniers sont :
* Bachet-Bézout
* Exponentiation modulaire
* Inverse modulaire
Ces outils utilisent l'arithmétique modulaire, cette méthode de résolution nous permet de travailler avec des nombres bien plus petit que ceux sortant des calculs brut.
REMPLIR AVEC DONNÉES QUI ONT PERMISENT À DÉCODER
Dans ce contexte, au vu de la formalisation des données récupérées par mail, on pourrait créer un parseur qui récupère `n`, `e` ainsi que le `message chiffré`, pour ne pas à avoir à les copier / coller à la main.
Évidemment, on pourrait prendre le projet réalisé dans le sens inverse étant donné que nous connaissons déchiffrer un message encodé en RSA 32bits. On pourrait mettre en place un message d'entré que l'on chiffre nous même.
- Rappel de votre réalisation.
- Résumé des résultats importants.
- Ouverture sur la suite :
- Quelles améliorations sont possibles ?
- Comment poursuivre le travail ?
- Comment l'intégrer dans un cadre plus large ?
Pour finir, après avoir mis en pratique les outils vu en cours. Nous avons pu décoder le message émis par mail. C'est en réalisant le projet que l'on aura compris plus en détails les rouages de cet algorithme, car même si la théorie et la pratique se ressemble. Sans exemples concret, c'est assez dur à comprendre comment fonctionne l'encodage et décodage du RSA.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment