Rechercher un outil sur dCode.fr

Chiffre Affine

Le chiffre Affine utilise une fonction de chiffrement par addition et multiplication (comme la fonction mathématiques affine) qui fait correspondre à une lettre L (de rang x dans un alphabet de 26 lettres) une autre lettre de rang (ax + b) modulo 26.

Résultats

Chiffre Affine -

Catégorie(s) : Cryptographie,Chiffrement par Substitution

dCode est ton ami !

dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les énigmes et les problèmes à résoudre au quotidien !
Vous avez un problème, un projet et dCode ne peut pas (encore) vous aider ? Vous désirez une prestation de développement sur mesure ? Contactez-moi !


Cette page utilise la nouvelle version de dCode
Qu'en pensez-vous ?   Revenir à la version précédente

Chiffre Affine

Annonces sponsorisées

Déchiffrement par fonction Affine







Sans connaitre les coefficients A et B

Données supplémentaire de codage

Chiffrement Affine







Données supplémentaire de codage

Réponses aux questions

Comment encoder avec Affine ? (Principe de chiffrement)

Le chiffrement utilise un alphabet classique, et deux nombres entiers, appelés coefficients A et B.

Soient l'alphabet ABCDEFGHIJKLMNOPQRSTUVWXYZ et les coefficients A = 5, B = 3. On veut coder DCODE.

A chaque lettre de l'alphabet est associée une valeur x : son rang dans l'alphabet.

On commence par 0, donc A = 0, B = 1, Z = 25, mais A = 1, ... Z = 26 s'utilise aussi.

A chaque lettre (de valeur x) du message, on associe une valeur y, résultat de la fonction affine y = A*x+B mod 26 (ou 26 correspond à la longueur de l'alphabet)

Pour D (x=3), on obtient la valeur y = A*3+B = 5*3+3 = 18

Pour O (x=14), on obtient la valeur y = A*14+B = 5*14+3 = 73 = 21 mod 26

A chaque valeur y obtenue, on associe la lettre de même rang dans l'alphabet qui constitue la lettre codée.

Pour D (y=18), on fait correspondre la lettre S (rang 18).

Pour O (y=21), on fait correspondre la lettre V (rang 21).

Le message chiffré par Affine est donc le remplacement des lettres de l'alphabet par ces nouvelles lettres.

DCODE devient SNVSX

Comment décoder par Affine ? (Principe de déchiffrement)

Le déchiffrement nécessite de connaitre les 2 coefficients A et B.

Soient le message chiffré SNVSX et les coefficients A=5 et B=3

A chaque lettre de l'alphabet est associée une valeur y : son rang dans l'alphabet.

On commence par 0, donc A = 0, B = 1, Z = 25, mais A = 1, ... Z = 26 s'utilise aussi (il faut savoir quelle a été la méthode utilisée lors du chiffrement).

A chaque lettre (de valeur y) du message, on associe une valeur x, résultat de la fonction reciproque x = A'*(y-B) mod 26 (ou 26 correspond à la longueur de l'alphabet)

La valeur A' est un entier tel que A*A' = 1 mod 26 (ou 26 correspond à la longueur de l'alphabet). Pour trouver A', utiliser le bouton 'calculer les coefficients'.

Un coefficient A' pour A = 5 et un alphabet de longueur 26 est 21. Car 5 * 21 = 105 = 1 mod 26.

Pour S (y=18), on obtient la valeur x = A'*(18-B) = 21*(18-3) = 315 mod 26 = 3

A chaque valeur x obtenue, on associe la lettre de même rang dans l'alphabet qui constitue la lettre codée.

Pour S (x=3), on fait correspondre la lettre D (rang 3).

Le message clair est donc le remplacement des lettres de l'alphabet par ces nouvelles lettres.

Le message clair est DCODE.

Comment reconnaitre le chiffre Affine ?

Le message a un indice de coincidence similaire à celui de la langue du texte clair.

Comment déchiffrer Affine sans les coefficients ?

Il est possible de realiser une attaque par brute-force testant tous les coefficients possibles. Utilisez le bouton Attaque par Brute-force.

>Si l'alphabet fait 26 caractères, alors le coefficient A peut prendre 12 valeurs et le coefficient B peut prendre 26 valeurs soit seulement 312 tentatives à réaliser.

Quelles sont les valeurs de A' ?

La valeur de A' dépend de A mais aussi de la longueur de l'alphabet, si celui ci est classique, il a 26 caractères. Les valeurs de A' dans ce cas sont les suivantes

A = 1, A' = 1

A = 3, A' = 9

A = 5, A' = 21

A = 7, A' = 15

A = 9, A' = 3

A = 11, A' = 19

A = 15, A' = 7

A = 17, A' = 23

A = 19, A' = 11

A = 21, A' = 5

A = 23, A' = 17

A = 25, A' = 25

Quand Affine a-t-il été inventé ?

Pourquoi y a-t-il une contrainte sur la valeur de A ?

Le théorème de Bezout indique que A' n'existe que si A et 26 (longueur de l'alphabet) sont premiers entre eux. Ceci limite les valeurs pour A à 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 et 25 (si l'alphabet fait 26 caractères).

Peut on utiliser une valeur de A non première avec 26 ?

Oui, mais le déchiffrement automatique devient impossible, une même lettre chiffrée pourra avoir plusieurs lettres claires possibles.

Peut-on utiliser une valeur de A négative ?

Oui, mais il existe une valeur positive correspondante, une valeur de A = -1 est égale à une valeur de A = 25 (car 25 = -1 mod 26).

Code source

dCodeur se réserve la propriété du code source du script Chiffre Affine. Sauf open source, toute demande d'algorithme ou applet (déchiffrement, chiffrement, encodage, décodage, encryptage, décryptage, traduction, traducteur, conversion, solveur), de fonction (décrypter, encrypter, déchiffrer, chiffrer, décoder, code, traduire, convertir, résoudre) ou un script en langage Java, C++, PHP, Python, Javascript, etc. pourra être formulée via la page contact. Si vous avez besoin de télécharger le script Chiffre Affine hors ligne pour vous, votre entreprise ou association, et que vous avez un financement, n'hésitez pas !

Questions / Commentaires



© 2014 dCode — Le site 'boite à outils' indispensable pour se simplifier la vie et tout résoudre. dCode