Exemple de chiffrement affine

Pour rendre le chiffrement et le décryptage plus rapide, l`alphabet entier peut être chiffré pour créer une carte un-à-un entre les lettres du texte clair et le texte chiffré. Le chiffrement est moins sécurisé qu`un chiffrement de substitution car il est vulnérable à toutes les attaques qui fonctionnent contre les chiffrements de substitution, en plus d`autres attaques. Si né cessaire, nous pourrions employer l`algorithme euclidien à cette fin. Le chiffrement utilise un alphabet classique et deux entiers, appelés coefficients ou clés A et B. Seule la valeur d`a a une restriction car elle doit être premiers entre eux avec 26. Chaque lettre est chiffrée avec la fonction (ax + b) mod 26, où b est l`amplitude du décalage. Cela limite les valeurs A à 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 et 25 (si l`alphabet est de 26 caractères de long). Dans cet exemple de décryptage, le texte chiffré qui sera déchiffré est le texte chiffré de l`exemple de chiffrement. La fonction de décryptage correspondante est D (y) = 21 (y − 8) mod 26, où a − 1 est calculé à 21, b est 8 et m est 26. Pour trouver (A` ), calculez un inverse modulaire.

Les valeurs possibles peuvent être 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 et 25. Le même type de transformation utilisé dans les chiffrements affines est utilisé dans les générateurs congruentiels linéaires, un type de générateur de nombres pseudo-aléatoire. Sachant, $a equiv $3 et $b equiv $7 nous donne la fonction de chiffrement $f (x) equiv 3x + 7 pmod{26} $. En utilisant le langage de programmation Python, le code suivant peut être utilisé pour créer un alphabet chiffré à l`aide des lettres romaines A à Z. Le théorème de Bezout indique que A`n`existe que si A et 26 (longueur de l`alphabet) sont coprime. En utilisant la fonction de cryptage y = 11x + 4 MOD 26, la lettre E et S sera encodée en W et U comme illustré ci-dessous. Nous utilisons maintenant la valeur de x, nous avons calculé comme a-1. Par exemple, imaginez que nous ayons un texte chiffré. Le chiffrement affine est un chiffrement très incertain, avec le chiffrement César étant peut-être le seul chiffrement plus facile à craquer.

Affine a un indice de coïncidence proche de la langue du texte brut. Ce générateur n`est pas un générateur de nombres pseudo-aléatoire sécurisé cryptographiquement pour la même raison que le chiffrement affine n`est pas sécurisé. Exemple: l`alphabet ABCDEFGHIJKLMNOPQRSTUVWXYZ, commençant à 0 donne A = 0, B = 1,. Compte tenu du cas spécifique de cryptage des messages en anglais (i. Les lettres correspondantes sont GCRWI, qui est le texte chiffré. La discussion suivante suppose l`utilisation d`un alphabet de 26 caractères (m = 26). Chaque valeur d`un peut avoir 26 différents décalages d`addition (la valeur de b); par conséquent, il y a 12 × 26 ou 312 clés possibles. En tant que tel, il a les faiblesses de tous les chiffrements de substitution. Nous pouvons maintenant trouver la valeur de a et b. en utilisant l`exemple que nous avons commencé avec, p = 4, r = 7, q = 19, s = 16. La faiblesse principale du chiffrement vient du fait que si le cryptanalyste peut découvrir (par le biais de l`analyse de fréquence, force brute, deviner ou autrement) le texte en clair de deux caractères de texte chiffré, alors la clé peut être obtenue en résolvant une équation simultanée [ 1]. la valeur de b peut être arbitraire aussi longtemps qu`un n`est pas égal à 1 car il s`agit du décalage du chiffrement.

Exemple: un coefficient (A` ) pour (A = 5 ) avec une taille d`alphabet de (26 ) est (21 ) car (5 times 21 = 105 equiv 1 mod 26 ). Pour chaque lettre de valeur (x ) du texte brut, est associée une valeur (y ), résultant de la fonction affine (y = A times x + B mod 26 ) (avec (26 ) la taille de l`alphabet). Puisque nous savons que chaque lettre en texte brut est chiffrée dans la fonction de y = (ax + b) MOD m, nous pouvons briser le chiffrement affine en résolvant deux équations linéaires avec deux exemples de x et y. Après avoir trouvé la valeur de (5x + 8) pour chaque caractère, prenez le reste en divisant le résultat de (5x + 8) par 26.