Crie uma função que recebe uma string de texto cifrado (alfabeto inglês) toda em letras minúsculas, uma função de criptografia e a converte em texto simples usando a função de descriptografia afim.
Na cifra afim, as letras de um alfabeto de tamanho m são primeiro mapeadas para os inteiros no intervalo 0 … m − 1. Em seguida, ela usa aritmética modular para transformar o inteiro correspondente a cada letra do texto simples em outro inteiro correspondente a uma letra do texto cifrado. A função de criptografia para uma única letra é E(x)=(ax+b)mod m, onde o módulo m é o tamanho do alfabeto e a e b são as chaves da cifra. O valor de a deve ser escolhido de modo que a e m sejam coprime.
A função de descriptografia é D(x)=a^(-1)*(x-b)mod m, onde a^(-1) é o inverso multiplicativo modular de a módulo m ie a * a^(-1) mod m == 1. O inverso multiplicativo de a só existe se a and m are coprime. Portanto, sem a restrição sobre a, a descriptografia pode não ser possível.
O alfabeto será composto pelas letras a a z e terá os valores correspondentes 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 o problema 1 =< a <= 11 , 1 =< b <= 9 , m = 26