Les codages affines Codage affine

Le codage affine généralise la méthode de Jules César. Il transforme chaque lettre de l’alphabet en une autre lettre de l’alphabet à l’aide d’une fonction affine. 

1. Une convention

Pour simplifier les choses, convenons de ne prendre que des lettres capitales non accentuées et choisissons deux nombres entiers a et b dans l’intervalle [0 ; 25]. Soit x le rang d’une lettre quelconque de l’alphabet et soit y celui de sa transformée. Par définition, le nombre y est le reste de la division euclidienne du nombre ax+b par 26.

2. Un programme pour coder un texte

Le programme suivant permet le codage affine d’un texte écrit en lettres capitales non accentuées et dépourvu d’espaces.

# Codage affine d'un texte 
print("Quelle phrase voulez-vous coder ?") 
x=input() 
n=len(x) 
a=eval(input("Choisissez un entier a :")) 
b=eval(input("Choisissez un entier b :")) 
nouveautexte="" 
for i in range(0,n): 
    y=ord(x[i])  
    y=65+((a*y+b)-65)%26 
    nouveautexte=nouveautexte+chr(y) 
print("Voici le texte codé :", nouveautexte) 

Codons par exemple le texte VENI VIDI VICI de Jules César en prenant a=9 et b=5. Le texte codé est le suivant :

Quelle phrase voulez-vous coder ? 
VENIVIDIVICI 
Choisissez un entier a : 9 ...
couv_RIPYTCN.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Le chiffre de Vigenère
Suivant
Le chiffrement de Hill