Chiffre Affine par Admin


posté par Admin le 5/2/2018


Le chiffre affine est une méthode de cryptographie basée sur un chiffrement par substitution mono-alphabétique.

Chaque lettre de l'alphabet (de A jusqu'à Z) est codée par son rang par un chiffre successivement de 0 à 25. ex: a=x (constante)=>lettre remplacée par une autre lettre unique. Le chiffre affine est un code facile à comprendre, mais cela signifie qu'il est tout aussi facile à casser. Son créateur reste toujours inconnu.

    Les étapes utilisées pour chiffrer sont:
  1. remplacer chaque lettre par sa valeur numérique x (ex:e=4, d=3)
  2. choisir les clés du chiffrement (a=4, b=3)
  3. utiliser la fonction E(x)= (ax+b) mod m

Exemple:
Pour chiffrer le mot “affine”
soit la clé a=5 et b=3
m=26 (il y a 26 lettres)

text a f f i n e
valeur numerique 0 5 5 8 13 4
ax+b 3 28 28 43 68 23
(ax+b) mod 26 3 2 2 17 16 23
message chiffre d c c r q x

Pour déchiffrer, nous devons faire l'inverse:
D(x)=c(x-b) mod m
avec c est pour a * c = 1 mod m
c = 21

message chiffre d c c r q x
valeur numerique 3 2 2 17 16 23
21(x-b) 0 -21 -21 294 273 420
21(x-b)mod m 0 5 5 8 13 4
message a f f i n e

Voici un simple code python, qui chiffre toutes les lettres de l'alphabet (cf. Code ci-dessous).


def chiffrer(a, b):
  for i in range(26):  
    print(chr(i+65) + ": " + chr(((a*i+b)%26)+65))
chiffrer(9, 12)

Sortie de la console après avoir exécuté le code ci-dessus.