next up previous contents index
suivant: Traduction Algorithmique monter: Chiffrement affine : premier précédent: Chiffrement affine : premier   Table des matières   Index


L'algorithme

Pour écrire le message on ne se restreint plus aux 26 lettres de l'alphabet. On suppose que le message à coder n'utilise que les caractères dont le code ASCII va de 32 à 127 (avant 32, les caractères ne sont pas imprimables, et après 127 il s'agit de caractères spéciaux...).
On choisit dans ce premier algorithme de coder chaque lettre : cela à l'incovénient de décrypter facilement le message en analysant la fréquence des lettres du message crypté, c'est pourquoi dans le deuxième algorithme, on code des groupements de trois lettres.
Il y a alors trois choses à faire qui sont les trois instructions de la fonction cod1 et qui code un caractère par un autre caractère :
- on transforme chaque caractère en un entier n de 0 à 95 (en enlevant 32 à son code ASCII)
- puis, on applique à cet entier n le chiffrement affine :

f (n) = a×n + b ( mod 96) avec f (n) $ \in$ [0..95].
Pour que cette application soit bijective il faut et il suffit que a soit premier avec 96. En effet d'après l'identité de Bézout il existe u et v tels que :
a×u + 96×v = 1 donc a×u = 1 ( mod 96)).
On a donc f-1(m) = u.(m - b) ( mod 96)
- on transforme le nombre trouvé f (n) en un caractère de code f (n) + 32.
Pour coder le message, il suffit ensuite de coder chaque caractère, c'est ce que fait la fonction codm1.

Pour décoder, il suffit de remplacer la valeur de a par a1 = u ( mod 96) si a×u + 96×v = 1
et la valeur de b par b1 = - ab ( mod 96)
car alors on a n = af (n) + b1 ( mod 96)
Les fonctions de décodage et de codage sont donc les mêmes , seuls les paramètres sont différents!
Exemple
a = 85 b = 2
On a par l'identité de Bézout :
85×61 - 96×54 = 1 et -2×61 = - 122 = 70 ( mod 96)
donc on obtient :
a1 = 61 b1 = 70


next up previous contents index
suivant: Traduction Algorithmique monter: Chiffrement affine : premier précédent: Chiffrement affine : premier   Table des matières   Index
Documentation de giac écrite par Renée De Graeve