Cifrado Vigenère

Blaise de Vigenère

El cifrador polialfabético más conocido es el sistema de Vigenère. Este algoritmo cuenta con dos formas de implementación: usando Aritmética Modular o la Tabla de Vigenère (cuadrado de Tritemio).

Este método pertenece al criptólogo italiano Giovan Battista Bellaso (1505-?) y en el siglo XIX fue asignado a Blaise de Vigenère (1523-1596), un diplomático francés y criptógrafo. Vigenère publicó el cifrado original de Battista Bellaso y propuso una clave mucho más fuerte, de tal forma que este cifrado se consideró inquebrantable hasta el siglo XIX cuando se publicó la primera ruptura.


Cifrado

Aritmética Modular

El algoritmo utiliza el mismo método que el cifrado César, esto es una sustitución por desplazamiento de caracteres en el texto, con la diferencia de que dicho desplazamiento viene indicado por el valor numérico asociado a uno de los caracteres de una clave que se escribe cíclicamente bajo el mensaje. Tomando en cuenta el alfabeto {A, B, C,..., Y, Z} de 27 caracteres, a cada uno de ellos se le asigna un número del 0 al 26. El siguiente paso para obtener el texto cifrado es realizar la siguiente operación.

Cn = Pn + K mod 27

Dónde

  • es el carácter del texto cifrado resultante
  • es la letra de la posición del texto claro
  • es el valor del carácter de la llave
  • es el tamaño del alfabeto


Por Ejemplo:

Llave:secretose



mod 27
19421842015194
Mensaje claro:holamundo
715110122113315
Texto cifrado:ZSNRPÑBVS
26191318161412219

Tabla de Vigenère

En este esquema, el conjunto de reglas de sustitución monoalfabética relacionadas consta de 27 cifrados César, con desplazamientos de 0 a 26. Cada cifrado se denota por una letra clave, que es la letra de texto cifrado que sustituye a la letra a de texto plano. Por lo tanto, un cifrado César con un desplazamiento de 3 se denotará con el valor clave d.

Para ayudar a entender el esquema y ayudar en su uso, se construye una matriz conocida como tabla Vigenère. Cada uno de los 27 cifrados se presenta horizontalmente, con la letra clave para cada cifrado a su izquierda. Un alfabeto normal para el texto plano corre a través de la parte superior.

El proceso de encriptación es simple: dada una letra clave x y una letra de texto plano y, la letra de texto cifrado está en la intersección de la fila x y la columna y. En este caso el texto cifrado es V.

Para cifrar un mensaje, se necesita una clave que sea tan larga como el mensaje. Normalmente, la clave es una palabra clave repetitiva.


Tabla Vigenère


Por ejemplo, si la palabra clave es secreto, el mensaje claro hola mundo se cifra de la siguiente manera:

Llave: secretose
Mensaje claro: holamundo
Texto cifrado: ZSNRPÑBVS


Descifrado

Aritmética Modular

Para el proceso de descifrado se siguen los mismos pasos que en el proceso de cifrado con la excepción de que se utiliza la siguiente fórmula.

Pn = Cn + (-K) mod 27

Dónde

  • es la letra del texto claro resultante
  • es la letra de la posición del texto cifrado
  • es el valor del inverso aditivo del carácter de la llave
  • es el tamaño del alfabeto


Por Ejemplo:

Llave:secretose



mod 27
82325923712823
Texto cifrado:ZSNRPÑBVS
26191318161412219
Mensaje claro:holamundo
715110122113315

Tabla de Vigenère

Utilizando la letra de la clave se identifica la fila. Una vez ubicada la fila se recorre la misma hasta encontrar la letra del texto cifrado. Se recorre esa columna y la letra que se encuentra al inicio de la misma corresponde a la letra del texto claro.

Referencias

  1. Stallings, William. (2005). Classical Encryption Techniques. En Cryptography and Network Security(46-47). Prentice Hall.
  2. Ramió, J. (1999). Aplicaciones Criptográficas. Dpto. de Publicaciones EUI-UPM: Dpto. de Publicaciones EUI-UPM.