Le progamme codaff transforme n selon le chiffrement affine :
f (n) = a×n + b mod p.
- il faut choisir
p 963 ; si p > 963, le nombre (f (n)) obtenu
aprés transformation affine de n, peut avoir une représentation de
plus de 3 lettres dans la base 96.
Mais, au décodage tous les mots auront exactement 3 lettres.
Pour les calculateurs qui limitent la représentation d'un entier à 12
chiffres il faut choisir
p
106 pour que
a×n + b < 1012
- pour que f soit inversible il faut que a et p soient premiers entre eux
(cf p ) .
Exemple
a = 567 b = 2 p = 106
On obtient par Bézout :
567×664903 + 106×377 = 1
et -2×664903 = 670164 mod 106
donc a1 = 664903 et b1 = 670164
Le programme n2mot fait l'opération inverse et transforme un nombre
entier n en un mot m (d'au moins 3 symboles) qui est la représentation
de n dans la base 96.
Il faut faire attention aux espaces en début de mot!!! En effet, l'espace
est codé par 0 et il risque de disparaître si on ne fait pas
attention, au décodage!!!
Exemple
On a
(c'est à dire la chaîne formée par 2 espaces et B).
Le programme codmot3 code les mots d'au moins 3 lettres en un mot d'au moins 3
lettres à l'aide du chiffrement affine. En changeant les paramètres a et b
codmot3 décode les mots codés avec codmot3.
Le programme codmess3 code les messages à l'aide du chiffrement affine. Pour décoder, il suffit d'utiliser la fonction codmess3 en changeant les paramètres a et b.