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.