0% ont trouvé ce document utile (0 vote)
8 vues3 pages

Application de Chiffrement RSA en Python

Ce rapport présente le développement d'une application de chiffrement basée sur l'algorithme RSA, offrant une interface graphique conviviale pour générer des clés, chiffrer et déchiffrer des messages. L'application, réalisée en Python avec Tkinter et le module 'cryptography', a été testée avec succès pour diverses tailles de clés et types de fichiers. Des perspectives d'amélioration incluent l'intégration de la signature numérique et la création d'une version mobile.

Transféré par

mahmoudbaiban
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues3 pages

Application de Chiffrement RSA en Python

Ce rapport présente le développement d'une application de chiffrement basée sur l'algorithme RSA, offrant une interface graphique conviviale pour générer des clés, chiffrer et déchiffrer des messages. L'application, réalisée en Python avec Tkinter et le module 'cryptography', a été testée avec succès pour diverses tailles de clés et types de fichiers. Des perspectives d'amélioration incluent l'intégration de la signature numérique et la création d'une version mobile.

Transféré par

mahmoudbaiban
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Rapport Technique : Application de

Cryptographie RSA
Introduction
La cryptographie est devenue un pilier essentiel de la cybersécurité dans le monde
numérique moderne. Elle permet de garantir la confidentialité, l'intégrité et l'authenticité
des données échangées à travers les réseaux. Le présent projet a pour but de concevoir et
de développer une application de chiffrement basée sur l'algorithme RSA, un système de
cryptographie asymétrique éprouvé. Cette application dispose d'une interface graphique
conviviale permettant à l'utilisateur de générer des clés RSA, chiffrer et déchiffrer des
messages ou fichiers, et gérer les clés de manière intuitive.

L'application a été développée en Python en utilisant la bibliothèque Tkinter pour


l'interface graphique et le module 'cryptography' pour les opérations cryptographiques
sécurisées. Le projet vise aussi à sensibiliser à la manipulation et la gestion correcte des
paires de clés asymétriques.

Théorie de l'algorithme RSA


RSA est un algorithme de cryptographie asymétrique, fondé sur la difficulté du problème de
factorisation des grands nombres premiers. Il repose sur deux clés mathématiquement liées
: la clé publique (utilisée pour chiffrer les données) et la clé privée (utilisée pour les
déchiffrer).

Les étapes principales sont :


- Génération de deux grands nombres premiers p et q
- Calcul de n = p * q et φ(n) = (p - 1)(q - 1)
- Choix d’un entier e premier avec φ(n)
- Calcul de d, l’inverse modulaire de e modulo φ(n)
- Clé publique : (n, e), Clé privée : (n, d)
- Chiffrement : C = M^e mod n, Déchiffrement : M = C^d mod n

Architecture du programme
Le programme est structuré autour d'une classe principale RSAGUI, qui contient toute la
logique de l'application graphique, les interactions utilisateur, et les opérations
cryptographiques.

Les composants graphiques sont répartis dans différents blocs :


- Gestion de l’apparence : bascule entre mode clair et sombre
- Génération des clés : sélection de la taille, barre de progression, export/import
- Message à chiffrer et déchiffrer : avec ou sans blocs
- Chiffrement et déchiffrement de fichiers binaires
- Résultats : zones de texte avec les clés et messages, boutons pour copier facilement

Fonctionnement technique
La génération des clés est effectuée à l'aide du module 'cryptography' avec un exposant
public fixé à 65537. Un thread est utilisé pour éviter le blocage de l’interface lors de cette
opération lourde.

Pour le chiffrement, le programme supporte le mode bloc (division du message en


segments), ce qui permet de chiffrer des messages plus longs que la taille autorisée par la
clé RSA. Chaque bloc est ensuite encodé en base64 pour l’affichage.

Le chiffrement/déchiffrement de fichiers se fait par lecture segmentée du fichier source,


application de RSA sur chaque segment, puis écriture dans un fichier cible. La taille des
blocs dépend de la taille de la clé.

Interface utilisateur
L’interface graphique est conçue avec Tkinter et offre une navigation intuitive. Le thème
visuel peut être ajusté (clair ou sombre), et tous les composants sont organisés en sections
logiques. Les boutons permettent d’exécuter les principales actions de manière fluide.

Des éléments tels que la barre de progression, les messages d’alerte, les zones de texte avec
scroll, et les boutons de copie enrichissent l'expérience utilisateur.

Résultats et tests
Des tests ont été réalisés pour différentes tailles de clés (256 à 4096 bits). Le chiffrement et
le déchiffrement ont été vérifiés pour des messages courts, longs et des fichiers de plusieurs
types (texte, PDF, binaire).

L’application fonctionne de manière fluide, sans blocage, même lors du traitement de gros
fichiers avec des clés de taille importante.

Perspectives et améliorations futures


Plusieurs pistes d’amélioration sont possibles :
- Intégrer la signature numérique pour garantir l’authenticité des messages
- Passer au padding OAEP, plus sécurisé que PKCS1v15
- Ajouter un carnet d’adresses pour l’envoi de messages chiffrés entre utilisateurs
- Générer un fichier APK pour déploiement mobile (avec Kivy)
- Ajouter la compression des messages avant chiffrement
Conclusion
Ce projet a permis de mettre en œuvre une solution complète de chiffrement RSA à travers
une interface graphique moderne. Il combine théorie cryptographique, pratique de
programmation sécurisée, et conception UX. Il constitue une base solide pour des
applications futures dans la sécurité des données.

Vous aimerez peut-être aussi