La cifra Afin

Descripción general

La cifra afín es una sustitución simple. Es una versión de una sola dimensión de la Cifra Hill.

[TOC] Tabla de Contenidos


↑↑↑

La cifra Afin


↑↑↑

La aritmética modular

En aritmética modular, se considera que dos enteros relativos son congruentes modulo n si presentan la misma resta en la división euclidiana por n. Trabajar con modulo n significa trabajar con números enteros comprendidos en el intervalo [0; n-1] incluidos los limites

Sin saberlo a diario hacemos cálculos con modulo n. Imaginemos que sean las 21 horas ¿Qué hora tendremos dentro de 6 horas?, evidentemente serán las 3 y no las 27 horas. En términos matemáticos decimos que trabajamos en modulo 24 ya que todas las horas quedan comprendidas entre 0 y 23. ¿Cómo hemos obtenido el 3? Hemos sumado los dos números (21 + 6 = 27) y después hemos tomado el resto de la división por 24 (27 / 24 = 1 y me llevo 3)


↑↑↑

Cifrado

La idea consiste en usar como función de cifrado una función afín del tipo y=ax+b en las que [a] y [b] son constantes, y en las que [x] e [y] son números correspondientes a las letras del alfabeto en base a esta tabla

Letra a b c d e f g h i j k l m n o p q r s t u v w x y z
Número 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Evidentemente para que la letra cifrada [y] sea también un número entre 0 y 25, trabajaremos modulo 26.

La verdadera formula será pues [y=(ax + b) (mod 26)]. Podemos observar que si [a]=1, volvemos a encontrar la cifra de Cesar donde [b] representa el desplazamiento.

El valor de [b] es un número entero comprendido entre 0 y 25. Un desfase de 26 es equivalente a un desfase de 0.

¡Cuidado!. No podemos utilizar cualquier valor ara [a]; [a] y 26 deben ser primos entre sí, lo que significa que no deben tener divisores comunes que no sean 1. Los valores posibles para [a] son pues 1, 3, 5, 7, 11, 15, 17, 19, 21, 23, y 25.

¿Por qué esta condición? Lo más sencillo es comprobar lo que ocurre se [a] toma un valor prohibido. Elijamos por ejemplo [a=2], y [b=0]. Si ciframos todas las letras del alfabeto

Texto claro a b c d e f g h i j k l m n o p q r s t u v w x y z
Texto cifrado A C E G I K M O Q S U W Y A C E G I K M O Q S U W Y

Observamos que [a] y [n] se han convertido en [A], que [b] y [o] se han convertido en [C]. etc. El problema aparecerá en el momento de descifrar el documento.


↑↑↑

Ejemplo de cifrado

Texto claro h o l a
X 7 14 11 0
Y 15 0 25 4
Texto cifrado P A Z E

Operaciones realizadas

        y=ax+b; a=9 ; b=4

        h - > y = 9 x  7 + 4 =  67 (mod 26) = 15 (La posición 15 del alfabeto definido anteriormente es la letra P)
        o - > y = 9 x 14 + 4 = 130 (mod 26) =  0
        l - > y = 9 x 11 + 4 = 103 (mod 26) = 25
        a - > y = 9 x  0 + 4 =   4 (mod 26) =  4
        

↑↑↑

Descifrado


↑↑↑

Apunte táctico, el inverso de módulo n

Recordemos en primer lugar el significado de un inverso: el inverso de un número [n], generalmente escrito [n-1], siendo [n].[n-1]=1. Por ejemplo [1/2] es el inverso de [2], ya que [2] . [1/2] =1 Calcular el inverso modulo [n], resulta un poco más difícil. El inverso modulo n de [b] es el numero entero [b-1] de tal modo que [b].[b-1](mod n) = 1. Por ejemplo, 7 es el inverso del modulo 9 de 4 ya que 4x7 (mod 9) = 28 (mod 9) = 1.

Método de fuerza bruta

Ejemplo Busquemos la inversa de 15 modulo 26

Proceso a seguir

15 x 1 (mod 26)= 15. Como el resultado no es 1 el [1] no es la respuesta y seguimos buscando

15 x 3 (mod 26)= 45 (mod 26)= 19. Como el resultado no es 1 el [3] no es la respuesta y seguimos buscando

15 x 5 (mod 26)= 75 (mod 26)= 23. Como el resultado no es 1 el [5] no es la respuesta y seguimos buscando

15 x 7 (mod 26)= 105 (mod 26)= 1. Como el resultado SI es 1 el [7] es el inverso que andamos buscando

Para no tener que volver a calcular cada vez las inversas modulo 26 podemos construir la siguiente tabla:

Los valores de a que no aparecen en la tabla no tienen inverso modulo 26

a 1 3 5 7 9 11 15 17 19 21 23 25
a-1 1 9 21 15 3 19 7 23 11 5 17 25

Algoritmo de Euclides extendido

El algoritmo de Euclides extendido permite calcular la inversa de [b] modulo [n] cuando existe.

El signo [:=] significa que la variable de la izquierda toma el valor de la variable de la derecha. Por ejemplo si [a=2], [b] valdrá también dos después de la instrucción b:=a


no := n
bo := b
to := 0
t := 1
q := Número entero inmediatamente inferior o igual a no / bo
r := no - q • bo
Mientras que r > 0 hacer
   Principio
      temp := to - q • t
      si temp >= 0 entonces temp := temp mod n, si no temp := n - ((-temp) mod n)
      to := t
      t := temp
      no := bo
      bo := r
      q := Número entero inmediatamente inferior o igual a no / bo
      r := no - q • bo
   fin
si bo <> 1 entonces  b no tiene un inverso modulo n, si no b-1 mod n = t


↑↑↑

Formula de descifrado

Es preciso invertir (mod 26) la formula de cifrado con el fin de expresar [x] en función de [y]

Y=ax + b, ecuación para cifrado. Restemos b

Y – b = ax. Para eliminar a, debemos multiplicarlo por su inversa ya que [a-1] . [a]=1

[a-1](y-b)=x

La ecuación de descifrado es pues x= [a-1](y-b) (mod 26). Si el paréntesis (y-b) resulta negativo basta con añadir 26 antes de multiplicarlo por [a-1]

Ejemplo de descifrado

Descifremos el mensaje que hemos calculado anteriormente. Como [a=9], [a-1]=3. La formula de descifrado es pues x=3(y-4) (mod 26)

Texto cifrado P A Z E
y 15 0 25 4
x 7 14 11 0
Texto claro h o l a

Operaciones realizadas

Primero calcular el inverso de a=9, por el metodo de Euclides visto antes. Como [a=9], [a-1]=3.

        x= a-1(y-b);  a=9 ; a-1=3; b=4
        La formula de descifrado es pues  x=3(y-4) (mod 26)

        P - > x = 3 x (15 - 4) = 3 x   11 =  33 (mod 26) =  7 (La posición 7 del alfabeto definido anteriormente es la letra [h])
        A - > x = 3 x ( 0 - 4) = 3 x (-4) = -12 (mod 26) = 14
        Z - > x = 3 x (25 - 4) = 3 x   21 =  63 (mod 26) = 11
        E - > x = 3 x ( 4 - 4) = 3 x    0 =   0 (mod 26) =  0

        

El cálculo para [A] (y = 0) es un poco articular , dado que 0-4=-4 <0.
Añadimos 26 antes de multiplicar por 3.
El cálculo nos da 3(0-4+26) (mod 26) = 63 (mod 26)= 11.


↑↑↑

Desencriptado

Podemos utilizar el análisis de frecuencias o efectuar una búsqueda exhaustiva de claves.
Observa que en este ejemplo unicamentehay 15 x 26 = 312 claves posibles.


↑↑↑

A.2.Enlaces

[Referencia Bibliográfica]
Los códigos secretos
Didier Müller
Ed. RobinBook
ISBN 978-84-96924-51-2
[Para saber mas]
Le chiffre Affine
Le chiffre de Hill
[Grupo de documentos]
[Documento Index]
[Documento Start]
[Imprimir el Documento]
© 1997 - - La Güeb de Joaquín
Joaquín Medina Serrano
Ésta página es española

Codificación
Fecha de creación
Última actualización
[HTML5 Desarrollado usando CSS3]