Ce projet implémente un système de chiffrement RSA en Python et langage C. Il montre l'utilisation des concepts mathématiques sous-jacents au RSA, tels que le calcul du PGCD, l'algorithme d'Euclide étendu pour trouver l'inverse modulaire et l'exponentiation modulaire pour chiffrer et déchiffrer des messages. Le système utilise une clé publique pour le chiffrement et une clé privée pour le déchiffrement, conformément aux principes de la cryptographie asymétrique.
- Calcul du PGCD : Utilisation de l'algorithme d'Euclide pour calculer le PGCD de deux nombres.
- Algorithme d'Euclide étendu : Utilisation de l'algorithme d'Euclide étendu pour calculer l'inverse modulaire et les coefficients de Bézout.
- Exponentiation modulaire : Algorithme d'exponentiation rapide pour le chiffrement et le déchiffrement des messages.
- Conversion entre texte et nombre : Conversion du texte en nombre pour le chiffrement et inversement.
- Système RSA : Mise en œuvre complète du chiffrement et du déchiffrement RSA, avec génération des clés publique et privée.
Le système RSA repose sur trois étapes principales :
- Génération des clés : Utilisation de deux grands nombres premiers
petqpour calculern, et du calcul de φ(n) pour déterminereetd. - Chiffrement : Le message est converti en un nombre, puis chiffré en utilisant la clé publique (composée de
eetn). - Déchiffrement : Le message chiffré est déchiffré en utilisant la clé privée (composée de
detn), récupérant ainsi le message original.
Le projet implémente les étapes suivantes :
- Calcul du PGCD et vérification que
eest premier avec φ(n). - Utilisation de l'algorithme de Bézout pour calculer
d, l'inverse modulaire dee. - Conversion du message en nombre et chiffrement avec la clé publique.
- Déchiffrement du message avec la clé privée et récupération du message original.
Le message "Donnez moi un poste de pentester svp" est converti en un nombre, puis chiffré et déchiffré pour démontrer le fonctionnement du système RSA.
- Python 3
- gcc
- Clonez ce projet ou téléchargez le fichier Python.
- Exécutez le fichier Python pour voir l'implémentation du chiffrement et du déchiffrement RSA en action.
Ce projet est une démonstration simplifiée du chiffrement RSA avec des valeurs relativement petites pour des raisons de lisibilité. Dans un contexte réel, des nombres beaucoup plus grands seraient utilisés pour garantir la sécurité des communications.