¿problema con la criptografia, aritmetica modular?
resulta que estoy estudiando criptografia con la aritmetica modular.
tengo las letras de la A a la Z numeradas del 1 al 26.
segun lo que vi en internet, la mejor forma es multiplicar (o sumar, dividir, restar etc.) cada letra a codificar por un numero aleatorio, por lo cual, multiplico el valor de "S" que es 20, por 3.
s = 20
20*3 = 60
pero lo que yo quiero es que ese 60 sea un numero menor o igual a 26 para poder reemplazar a 60 por una letra diferente, de aqui la aritmetica modular:
60 mod 26 = 8.
pero luego cuando vaya a decodificar el mensaje, como se yo que 8 lo puedo convertir en 20, sabiendo que:
34 mod 26 = 8
osea, da el mismo resultado, como se yo si ese numero es 34 o 60?. segun lo que he pensado hasta el momento, me surgio la teoria de que si divido ese 34 por 3 (34/3), no me dara un numero entero sino decimal, pero quiero saber si en todos los casos se cumple esto o tengo que hacerlo de otra forma, para convertir ese 60 (o cualquier otro numero mayor a 26) en otro menor a 26 gracias por leer.
1 respuesta
- Anónimohace 1 décadaRespuesta preferida
Veamos, tu esquema de codificación consiste en asignar a cada símbolo s el número
(n s) mod m donde n = 3 y m = 26.
Como n y m son primos relativos (tienen mcd(n,m) = 1) entonces el sistema
(x n) mod m = 1
tiene solución, y la puedes hallar usando el algoritmo extendido de Euclides (mira en la referencia). Entonces una vez que conoces el valor de x calculas
[x (n s)] mod m = s
y listo, acabas de descifrar s.