Crea una función que recibe una cadena de texto cifrado (alfabeto inglés) completamente en minúsculas, una función de cifrado y la convierte en texto plano usando la función de descifrado afín.
En el cifrado afín, las letras de un alfabeto de tamaño m se asignan primero a los enteros del rango 0 … m − 1. Luego utiliza aritmética modular para transformar el entero al que corresponde cada letra del texto plano en otro entero que corresponde a una letra del texto cifrado. La función de cifrado para una sola letra es E(x)=(ax+b)mod m, donde el módulo m es el tamaño del alfabeto y a y b son las claves del cifrado. El valor de a debe elegirse de modo que a y m sean coprime.
La función de descifrado es D(x)=a^(-1)*(x-b)mod m, donde a^(-1) es el inverso multiplicativo modular de a módulo m ie a * a^(-1) mod m == 1. El inverso multiplicativo de a solo existe si a and m are coprime. Por lo tanto, sin la restricción sobre a, el descifrado podría no ser posible.
El alfabeto estará compuesto por las letras a a z y tendrá los valores correspondientes a=0, b=1, c=2, d=3 ... z=25.
affineDecrypt("ucncmrwt", "(x+2)%26") ➞ "salakpur"
// a = 1, b = 2, encryption = "(x+2)%26".
// Modular Multiplicative Inverse of 1 = 1.
// We apply the decryption function for the letters.
affineDecrypt("hezmrc", "(3x+4)%26") ➞ "bahuni"
// a = 3, b = 4, encryption = "(x+2)%26".
// Modular Multiplicative Inverse of 3 = 9.
// We apply the decryption function for the letters.Para el problema 1 =< a <= 11 , 1 =< b <= 9 , m = 26