Rechercher un outil
Chiffre Affine

Outil pour décoder/encoder avec Affine automatiquement. 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 et vous

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, une idée de projet, besoin d'un outil spécifique et dCode ne peut pas (encore) vous aider ? Vous désirez une prestation de développement sur mesure ? Contactez-moi !


dCodeur lit tous les messages et y répond si vous indiquez un email (non publié) ! C'est grâce à vous que dCode a le meilleur outil de Chiffre Affine, Merci.

Voici la nouvelle version de dCode
Qu'en pensez-vous ?   Retour version précédente

Chiffre Affine

Annonces sponsorisées

Déchiffrement par fonction Affine










Chiffrement Affine









Outil pour décoder/encoder avec Affine automatiquement. 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é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 la valeur de son rang dans l'alphabethref.

On commence par 0, donc A = 0, B = 1, Z = 25, mais A = 1, ... Y= 25, Z = 0 s'utilise aussi si on prend l'alphabet ZABCDEFGHIJKLMNOPQRSTUVWXY.

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'alphabethref 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 (ceux du chiffrement) et l'alphabet utilisé.

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

A chaque lettre de l'alphabet est associée la valeur de son rang dans l'alphabethref.

Avec l'alphabet ABCDEFGHIJKLMNOPQRSTUVWXYZ puisqu'on commence par 0, on a A = 0, B = 1, Z = 25, mais avec l'alphabet ZABCDEFGHIJKLMNOPQRSTUVWXY alors A = 1, ... Y = 25 et Z = 0.

A chaque lettre (de valeur y) du message, on associe une valeur x, résultat de la fonction réciproque 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', il faut calculer un inverse modulairehref.

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'alphabethref 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 coincidencehref similaire à celui de la langue du texte clair.

Comment déchiffrer Affine sans les coefficients ?

Il est possible de réaliser une attaque par brute-force testant tous les coefficients possibles. Utilisez la fonction 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.

Comment calculer la valeur A' ?

Il faut calculer l'inverse modulairehref de A modulo la longueur de l'alphabet.

Comment calculer la valeur B' ?

B' a la même valeur que B.

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é ?

Aucune date ni auteur connus.

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 euxhref. 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).

Y a-t-il une contrainte sur la valeur de B?

Non, B peut prendre n'importe quelle valeur.

Poser une nouvelle question

Code source

dCode se réserve la propriété du code source du script Chiffre Affine. Sauf code licence open source explicite (indiqué Creative Commons / gratuit), tout algorithme, applet, snippet ou logiciel (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou toute fonction (convertir, résoudre, décrypter, encrypter, déchiffrer, chiffrer, décoder, traduire) codé en langage informatique (PHP, Java, C#, Python, Javascript, etc.) dont dCode a les droits pourra être cédé après devis. Donc si vous avez besoin de télécharger le script Chiffre Affine hors ligne pour vous, votre entreprise ou association, rendez-vous sur la page de contact !

Questions / Commentaires


dCodeur lit tous les messages et y répond si vous indiquez un email (non publié) ! C'est grâce à vous que dCode a le meilleur outil de Chiffre Affine, Merci.


Source : http://www.dcode.fr/chiffre-affine
© 2017 dCode — La 'boite à outils' indispensable qui sait résoudre tous les jeux / énigmes / géocaches. dCode