Algoritmo AFIN
Se le llama algoritmo afín a todo aquel algoritmo mono alfabético genérico que realiza transformaciones afines, esto es, la operación de sustitución se realiza con base en la siguiente expresión:
Ci = (a*Mi + b) mod n
donde:
Ci = carácter cifrado que ocupa la posición i en el alfabeto
Mi = carácter en claro que ocupa la posición i en el alfabeto
a = constante de decimación
b = constante de desplazamiento
n = orden del grupo
Como se puede apreciar, la constante de decimación debe ser a<=1 ya que de otra forma (a=0) se anularía la equivalencia de los alfabetos, la constante de desplazamiento debe cumplir 1<=b<=n, ya que si fuese b = 0 no habría desplazamiento alguno y entonces el resultado sería Cripto = Mcla, en tanto que si b fuese b>n caería dentro del mismo anillo, por lo que su valor se vería reducido a módulo n. Con base en estas características los sistemas de cifrado por sustitución se pueden clasificar como sigue:
- Sustitución por desplazamiento puro: cuando a=1 y 1<=b<=n.
- Sustitución por decimación pura: cuando a>1 y b=0.
- Sustitución afín: cuando a>1 y 1<=b<=n.
De manera que haciendo la comparación con la expresión con la dada para el algoritmo del César
Cifrado: Ci = Mi + 3 mod n
Se observa que a = 1, b = 3, por lo que corresponde al grupo de algoritmos de sustitución por desplazamiento puro.
si Ci = (a * Mi + b) mod n = 0
entonces
Ci = [(a * Mi + b) mod n] + n
Para llevar a cabo el proceso de descifrado es necesario calcular:
Mi = (Ci – b) * mod n
Siendo = inv(a, n), donde el factor de multiplicación a debe ser primo relativo con el cuerpo n para que exista el inverso de a.