Vote des utilisateurs
0
0
Détails
Licence : Freeware
Mise en ligne le 18 avril 2019
Plate-forme :
Windows
Langue : Français
Référencé dans
Navigation
Crypter avec une fonction affine
Crypter avec une fonction affine
Le chiffrage affine utilise une fonction affine du type y = (ax + b) pour crypter des données; a et b sont des constantes que l’on nommera ici CleA et CleB et ou x et y sont des nombres correspondant aux lettres de l’alphabet en sachant que A=0, B=1, C=2…
On remarquera que si a=1, on se retrouve avec le chiffre de César et par conséquence « b » sera le décalage.
On remarquera également que si b=0 alors « a » sera toujours chiffré « A »
Les formules de chiffrement et de déchiffrement sont :
pour crypter : C=c(x)= (ax + b) mod 26 ‘on travaille avec un modulo 26 pour que la lettre chiffré soit un nombre entre 0 et 25
pour décrypter : D=d(x)=(a^-1 * (x – b)) mod 26
On remarquera que si a=1, on se retrouve avec le chiffre de César et par conséquence « b » sera le décalage.
On remarquera également que si b=0 alors « a » sera toujours chiffré « A »
Les formules de chiffrement et de déchiffrement sont :
pour crypter : C=c(x)= (ax + b) mod 26 ‘on travaille avec un modulo 26 pour que la lettre chiffré soit un nombre entre 0 et 25
pour décrypter : D=d(x)=(a^-1 * (x – b)) mod 26
Nos ressources disponibles
La fonction crypeaffine va chercher la position de la lettre à crypter dans l’alphabet,
applique la formule de cryptage et retourne la lettre cryptée
posalpha est une fonction qui retourne la position de la lettre dans l’alphabet en commençant par A=0
posnum est une fonction qui retourne la lettre de l’alphabet par rapport à une postion donnée
La fonction decrypeaffine va chercher la position de la lettre à décrypter dans l’alphabet,
applique la formule de décryptage et retourne la lettre décryptée
Cette fonction retourne l’inverse de CleA obligatoire pour pouvoir décrypter
applique la formule de cryptage et retourne la lettre cryptée
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 | Fonction crypeaffine (Entrée lettre : chaine; Entrée CleA : entier; _ Entrée CleB : entier; Sortie crypteaffine : chaine) ENTIER X X :=posalph(lettre) X :=((CleA * X) + CleB ) Mod 26 crypteaffine := posnum(X) Fin fonction |
posalpha est une fonction qui retourne la position de la lettre dans l’alphabet en commençant par A=0
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | Fonction Posalpha (Entrée lettre : chaine; Sortie Posalpha : entier) CHAINE alpha, tempo alpha := "ABCDEFGHIJKLMNOPQRSTUVWXYZ" pour i allant de 0 à longueur(alpha) tempo=alpha[i] si lettre = tempo alors Posalpha=i sort de pour Fin de si prochain i fin fonction |
posnum est une fonction qui retourne la lettre de l’alphabet par rapport à une postion donnée
Code : | Sélectionner tout |
1 2 3 4 5 6 7 | Fonction Posnum (Entrée position : entier; Sortie Posnum : chaine) CHAINE alpha alpha := "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Posnum=alpha[position] -1 // A=0 fin fonction |
La fonction decrypeaffine va chercher la position de la lettre à décrypter dans l’alphabet,
applique la formule de décryptage et retourne la lettre décryptée
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 | fonction decrypteaffine (Entrée lettre : chaine; _ Entrée CleA : entier; Entrée CleB : entier; Sortie decrypteaffine : chaine) ENTIER X InvA=InvA(CleA) X :=posalph(lettre) X :=(InvA * (x - CleB)) Mod 26 decrypteaffine := posnum(X) fin fonction |
Cette fonction retourne l’inverse de CleA obligatoire pour pouvoir décrypter
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 | fonction InvA (Entrée CleA : entier, Sortie InvA : entier pour i allant de 1 à 26 si (CleA * i ) mod 26 = 1 alors InvA=I sort de pour fin de si fin de pour fin fonction |
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.