Auteurs : Léo Martinez III - LinkedIn
Contact : [email protected]
Création : printemps 2024
Ce programme Python implémente l'Affine Cipher, un type de chiffrement de substitution, pour crypter et déchiffrer les messages. Le chiffrement affine utilise une paire de clés, alpha (a) et bêta (b), pour transformer le texte brut en texte chiffré et vice versa.
La formule de cryptage est donnée par : E(x) = (ax + b) mod m, où x est l'index des lettres en clair, a et b sont les clés et m est la taille de l'alphabet.
Le programme gère l'insensibilité à la casse et ignore les espaces dans l'entrée.
Le texte chiffré est généré en convertissant chaque lettre du texte brut à l'aide de la transformation affine.
La formule de décryptage est donnée par : D(y) = (a_inv * (y - b)) mod m, où y est l'index des lettres du texte chiffré, a_inv est l'inverse multiplicatif modulaire de a, b est la clé et m est le taille de l'alphabet.
Semblable au cryptage, le programme gère l'insensibilité à la casse et ignore les espaces dans l'entrée.
Le programme invite l'utilisateur à choisir entre le cryptage (« e ») ou le déchiffrement (« d »).
Les utilisateurs saisissent les valeurs alpha (a) et bêta (b), en s'assurant qu'elles se situent dans la plage valide.
Des vérifications GCD (Greatest Common Divisor) sont effectuées pour garantir une saisie valide.
Des exemples de valeurs pour le texte chiffré et le texte brut sont fournis à des fins de test.
Le programme a été créé dans Google Colab avec Python 3.9
Tout ce qui est nécessaire ainsi que les informations d'installation supplémentaires pour exécuter le programme seront contenus dans ce dossier.
Voici une brève explication des éléments :
src : dossier qui contient le script python du code source : main.py (utilisez ce fichier pour exécuter le programme)
README.md : contient les informations les plus élémentaires sur le projet
LICENCE : contient des informations de licence concernant le référentiel Github
De plus, assurez-vous que le python « mathématique » est correctement installé dans votre environnement virtuel car la méthode .gcd() est nécessaire pour garantir la vérification des erreurs afin de faciliter l'intégrité du déchiffrement.