El método usado por Julio César, que se basa en el corrimiento de las letras dentro de un alfabeto y que vimos en un artículo pasado, es ingenuo aunque pudo haber sido una buena elección en su momento pues la mayoría de las personas eran analfabetas en ese tiempo. Sin embargo, como método de cifrado dista de ser seguro.

Hay una serie de métodos mucho más complejos basados en la idea original del corrimiento de Julio César. Uno de ellos es el cifrado Vigenère, el cual cifra los textos usando un conjunto de alfabetos con corrimiento, y usando además para ello una llave única. Esto también recibe el nombre de “sustitución polialfabética” .

El cifrado Vigenère de hecho, se ha reinventado muchas veces. El método se describió por primera vez por Giovan Battista Bellaso en 1553, aunque por alguna razón se le atribuye su invención a Blaise de Vigenère (1523–1596) . El cifrado es relativamente simple de entender e implementar y por tres siglos se consideró uno de los mejores por su resistencia a ser descifrado. Fue Friedrich Kasiski , sin embargo, en 1863, el primero en analizar y descifrar el esquema Vigenère.

En busca del cifrado perfecto

¿Cómo se cifra un texto?

Para este método de cifrado se usa una tabla de 26 x 26 casilleros, que van de la “A” a la “Z” tanto en filas como en columnas (ver figura). Esta tabla recibe el nombre de “cuadro de Vigenère”. La primera fila de esta tabla tiene los 26 símbolos de las letras, de la “A” a la “Z”. La segunda fila se corre una posición y se empieza desde la “B” a la “Z” y al final se agrega la “A”. La tercera fila se vuelve a recorrer una posición y se empieza en la “C” para terminar en la “Z”, agregando dos símbolos a la derecha en los espacios sobrantes, en este caso la “A” y la “B”. Y así sucesivamente. El cuadro final es el siguiente:

Tabla o cuadro de Vigenère

Además del texto a cifrar, el esquema Vigenère usa una llave única, la cual se repite la cantidad de veces hasta llevar la longitud del texto a cifrar. Normalmente se eliminan los espacios y los símbolos de puntuación, convirtiendo todas las letras en mayúsculas (tanto en el texto a cifrar como en la llave). Por ejemplo, si la llave es “MORSA”, y el texto a cifrar es “BIENVENIDO AL MUNDO DE LA CRIPTOGRAFIA”, entonces tendremos:

BIENVENIDOALMUNDODELACRIPTOGRAFIA
MORSAMORSAMORSAMORSAMORSAMORSAMOR

Considerando este particular ejemplo, se toma la primera letra del texto a cifrar, así como la primera letra de la llave. Esto nos da la coordenada de la columna y renglón respectivamente. Así encontramos la letra cifrada. Por ejemplo, de acuerdo a la tabla. Si la primera letra es la “B” (de BIENVENIDO) –la columna, la letra de la llave es la “M” (de MORSA), que es la fila y obtenemos una “N”. Este proceso lo realizamos para todas las letras y así generamos el texto cifrado. ¨Podemos ver que si aplicamos este algoritmo, esta receta, encontraremos que el texto BIENVENIDOALACRIPTOGRAFIA se cifra de la siguiente forma: NWVFVQBZVOMZDMNPCUWLMQIAPFCXJARWR

Para descifrar un texto Vigenère

El descifrado de un mensaje del código Vigenère se hace de la siguiente manera: se va a la fila de la tabla en donde está la letra correspondiente a la llave. Se encuentra entonces la letra a la cual se cifró y entonces, se busca la columna correspondiente, que viene ser la letra sin cifrar. Por ejemplo, si la primera letra del mensaje cifrado es “N” y la primera letra de la llave es “M” (de MORSA), hallamos que la “N” aparece en la columna “B”, que es la primera letra del texto sin cifrar. Tomamos la segunda letra de la llave, la “O” y nos posicionamos en esa fila en la tabla de Vigenère. Vemos en qué columna está la “W” (la letra cifrada) y veremos que se encuentra en la columna “I”, que es la segunda letra del texto original.

La encripción “Julio César”

El software del cifrado Vigenère

El siguiente programa de computadora, de código abierto, permite cifrar y descifrar textos usando el cifrado del que hemos hablado. Pídanmelo a mi correo, morsa@la-morsa.com, si quieren el software gratuito.

Como ejercicio, inténtese descifrar el siguiente mensaje: PWFKM GSMWA XXLYA PCIQE EHVDA BWVRA CIVVI AGUWT DOJVE PWFKL MHISM MSDHI QNRVE BCCNO KHZWM BCPKU QBFQA SCEAA.