CRIPTOGRAFÍA HISTÓRICA - La cifra de Vigenère

Boletín Enigma nº 13 1 Mayo 2003

Ult. rev. 06-01-2023

 

EDITORIAL

El trece, reza la creencia popular, es número de mal fario. Bueno, no es que aquí creamos en las meigas, pero como dicen los gallegos, haberlas haylas. Se presentaron en el ordenador del enigmático en jefe, en la forma de un borrado rutinario mal ordenado. !El resultado fue la pérdida de todo el archivo de suscriptores al boletín Enigma! Ya me veía comenzando desde cero. Felizmente, una copia antigua combinada con una búsqueda mediante editor de texto permitió recuperar la libreta de direcciones original ... y gracias a ello estáis ahí fuera, leyendo este editorial.

Ha sido un mes muy movido. Nos hemos visto sorprendidos con nada menos que una propuesta de restricción al uso de la criptografía. La campaña en contra del artículo 36 (no el 33) de la Ley General de Telecomunicaciones, que comenzamos en este mismo boletín, puede ahora considerarse una victoria, como el lector leerá en el artículo "No diga 33, digo 36"

En el apartado personal, mi experiencia se ha visto gratamente enriquecida. Mi asistencia como ponente a la conferencia "Computers, Freedom and Privacy 2003" resultó toda una experiencia, de la que hay mucho que hablar. De momento, incluyo mi "reportaje" sobre los premios del Gran Hermano (Big Brother Awards), que en EEUU reciben el nombre de galardones Orwell. Combinando dicha movida con una visita a Washington, tuve la ocasión de enriquecer mis archivos personales con una visita a los Archivos Nacionales norteamericanos, donde se guardan claves españolas y ataques de los criptógrafos americanos a nuestro país que datan desde comienzos del siglo XX. Añadamos una visita al Museo Criptológico Nacional y al propio exterior de la National Security Agency (de la que el Museo Camazón será testigo próximamente), y el resultado es montones de artículos interesantes que se agolpan esperando ser escritos y publicados.

Desafortunadamente, tengo la mala costumbre de dormir algo por la noche, comer, trabajar, etc, de forma que os pido un poco de paciencia. También tenemos pendientes más artículos sobre la máquina Enigma, a la que no hemos olvidado. !Ah!, y me acaban de avisar de que hay una máquina de cifrado modelo Kryha en España, en un museo de...

Bueno, no adelantemos acontecimientos. Todo se andará. Si no fuese porque el que inventó los relojes le puso sólo veinticuatro horas, podríamos tener un boletín del tamaño de un libro cada mes. De momento, aquí va también otro capítulo del libro "Libertad Vigilada", de Nacho García Mostazo. Y ya que hablamos de libros, a partir del número siguiente aparecerá un nuevo apartado: "Sección de Libros". Cada mes, revisaremos un libro sobre criptografía. Comenzaré por los que yo conozco, aunque vuestros comentarios serán bien recibidos (y a ver si os animáis a participar, que gastáis menos en emilios que Tarzán en sastres). Puede que incluso los puntúe, como los hoteles. A ver, ¿cuántos rotores le pondré al último de Schneier...?

 

CRIPTOGRAFÍA HISTÓRICA - La cifra de Vigenère

Cuenta David Kahn en su "Codebreakers" que "el nombre de Blaise de Vigenère permanece firmemente unido a lo que se ha convertido en ... probablemente el sistema de cifra más famoso de todos los tiempos." Eso son palabras mayores, así que vamos a ver de qué se trata.

Blaise de Vigenère nación en Francia en 1523. Hacia 1549, fue enviado por su amo, el Duque de Nevers, en una misión diplomática a Roma. Fue allí donde le picó el virus de la criptografía, una enfermedad altamente contagiosa y sin cura (¿verdad, lector?). En el transcurso de ese y otros viajes, leyó los escasos libros sobre criptografía entonces disponibles, y tuvo la oportunidad de codearse con los grandes del ramo. En 1585 escribió su manga opus, el "Traicté des Chiffres", que entre otros describe el sistema de cifra que hoy conocemos como Vigenére.

Lo que hoy entendemos como cifra de Vigenère no es sino un sistema de sustitución polialfabética. En una sustitución monoalfabética, cada letra se sustituye por otra que no varía. Por ejemplo, supongamos una sustitución de César, donde cada letra se cambie por la siguiente: la A pasa a ser la B, la B se sustituye por la C, etc. De ese modo, el Boletín ENIGMA pasaría a ser el Cpmfujo FOJHNB. Este sistema caería fácilmente ante un análisis de frecuencias.

Lo que hoy entendemos como cifra de Vigenère no es sino un sistema de sustitución polialfabética. En una sustitución monoalfabética, cada letra se sustituye por otra que no varía. Por ejemplo, supongamos una sustitución de César, donde cada letra se cambie por la siguiente: la A pasa a ser la B, la B se sustituye por la C, etc. De ese modo, el Boletín ENIGMA pasaría a ser el Cpmfujo FOJHNB. Este sistema caería fácilmente ante un análisis de frecuencias.

Lo que hoy entendemos como cifra de Vigenère no es sino un sistema de sustitución polialfabética. En una sustitución monoalfabética, cada letra se sustituye por otra que no varía. Por ejemplo, supongamos una sustitución de César, donde cada letra se cambie por la siguiente: la A pasa a ser la B, la B se sustituye por la C, etc. De ese modo, el Boletín ENIGMA pasaría a ser el Cpmfujo FOJHNB. Este sistema caería fácilmente ante un análisis de frecuencias.

Una posible solución consistiría en usar diversas cifras de César para distintas letras. Supongamos que las letras en las posiciones impares las ciframos mediante una sustitución, y las pares mediante otra. Digamos que cada letra impar la sustituimos por la que hay dos lugares más adelante (la A pasa a ser la C), lo que llamaremos cifras de César de clave 2; las letras pares las cifraremos con una cifra cesariana de clave 5 (la A pasa a ser la que tiene cinco lugares más adelante, es decir la F). Escribamos los alfabetos correspondientes:

Texto llano:             abcdefghijklmnopqrstuvwxyz
Cifrado (César clave 2): CDEFGHIJKLMNOPQRSTUVWXYZAB
Cifrado (César clave 5): FGHIJKLMNOPQRSTUVWXYZABCDE

Como ejemplo, vamos a cifrar la frase "bienvenidos al boletin enigma" (sin signos de puntuación ni mayúsculas). La primera letra (b) la cifraremos con la cifra César de clave 2; en la segunda fila, vemos que la b se transforma en la D. Para la segunda letra (i), tomamos la fila inferior, y vemos que la i se transforma en la N. Para la tercera letra, volvemos a usar la cifra César de clave 2: la e se transforma en la G. Así, salvo error por mi parte, obtenemos el siguiente mensaje cifrado:

Cifra (César clave...):  25252525252525252525252525252
Texto llano:             bienvenidos al boletin enigma
Texto cifrado:           DNGSXJPNFTU FN GQQGYKS GSKLOF

Bien, pues eso es una cifra de Vigenère. Claro que no se usan solamente dos alfabetos, sino que podemos tomar más. Para poder visualizarlo mejor, vamos a construir la siguiente tabla:


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

A     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
B     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 A
C     C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D     D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E     E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F     F G H I J K L M N O P Q R S T U V W X Y Z A B C E F
G     G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H     H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I     I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J     J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K     K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L     L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M     M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N     N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O     O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P     P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q     Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R     R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S     S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T     T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U     U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V     V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W     W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X     X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y     Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z     Z 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

El funcionamiento se verá mejor con un ejemplo. Supongamos que queremos cifrar "bienvenidos al boletín enigma" mediante la cifra Vigenère con clave DAVID. Para la primera letra cifrada, tomaremos la intersección entre la cuarta fila (correspondiente al alfabeto D) y la segunda columna (correspondiente a la letra b). El resultado es la letra cifrada E. A continuación, tomamos la fila correspondiente a la siguiente letra de la clave (A, primera fila) y la columna correspondiente a la siguiente letra del texto (i, novena columna). La intersección de fila primera y columna novena nos da la letra cifrada I. Así sucesivamente.

Siguiendo este proceso, obtendremos lo siguiente:

Clave (fila):     D A V I D D A V I D D A V I D D A V I D D A V I D D

Texto (columna):  b i e n v e n i d o s a l b o l e t i n e n i g m a

Texto cifrado:    E I Z V Y H N D L R V A G J R O E O Q Q H N D O P D

El ejemplo anterior, que usaba las cifras de César 2 y 5, correspondería a un Vigenère con clave CF.

La que hoy conocemos como cifra Vigenére tiene una interesante leyenda. Para empezar, resulta que Vigenére desarrolló otros sistemas de cifra más avanzados, que al parecer no fueron muy populares en su época (se creía que eran más complejos de uso, así que durante tres siglos se usó el típico libro de código). La cifra que ahora conocemos bajo su nombre fue sacada del olvido en el siglo XIX, cuando fue redescubierta. La primera solución criptoanalítica data de 1860, cuando un oficial prusiano apellidado Kasiski descubrió un ataque contra los sistemas de cifra polialfabéticos.

Para resumir, diremos que este ataque se basa en que, en ocasiones, se cifran partes iguales de texto con partes iguales de clave. Usaremos un ejemplo citado por David Kahn:

Clave:         R U N R U N R U N R U N R U N R U N R U N R U N R U N R U N

Texto llano:   t o b e o r n o t t o b e t h a t i s t h e q u e s t i o n

Texto cifrado: K E I V I E E I G K I O V N U R N V J N U V K H V M G Z I A

Véase como, en dos ocasiones, el texto "tobe" se cifra con la clave "RUNR" para dar el mismo texto cifrado "KEIV". Asimismo, el texto "th" se cifra en dos ocasiones con la clave "UN" para dar el texto cifrado "NU". Analizando ese tipo de coincidencias se puede llegar a averiguar la longitud de la palabra clave. Una vez hecho, no se trata más que de atacar diversas cifras monoalfabéticas por separado. Por ejemplo, las letras primera, cuarta, séptima, décima ... forman una cifra de César. Igual sucede con las letras 2,5,8,11 ... por un lado, y con las 3,6,9,12... por otro.

A pesar de ello, la cifra Vigenére parece haber adquirido un aura de invulnerabilidad con el tiempo. David Kahn narra cómo, en 1917, la revista Scientific American (hoy traducida bajo el nombre de Investigación y Ciencia) afirmaba que la cifra Vigenére era "imposible de traducir [atacar]". Incluso en fecha tan tardía como la década de los ochenta, Bruce Schneier afirmó que los primeros modelos de teléfonos móviles estadounidenses usaban un sistema de cifrado basado en la cifra Vigenére. !Sorprendente récord de longevidad!

En España también fuimos víctimas de este "engaño". En los Archivos Nacionales de EEUU existen descripciones de diversos sistemas de cifra usados por buques españoles durante la década de los 40. Uno de ellos detalla el tipo de cifra usada por el buque "Monte Orduña" en Marzo de 1943. El texto se codificaba según el llamado "Código Internacional de Señales", público, que transforma las palabras o frases en conjuntos de cinco letras. A continuación, dicho texto en código era cifrado con un sistema Vigenére que utilizaba.

Por ejemplo, el texto llano "informe vd." se transformaba en ELTOP mediante el Código Internacional de Señales. Con un Vigenére usando clave ASPRO, el texto se transformaba -compruébelo- en EDIFD. Por supuesto, también podríamos haber cifrado "informevd" directamente con el Vigenére, pero resulta más cómodo usar textos compuestos por grupos de cinco letras.

Cada buque tenía un conjunto distinto de claves para cifrar. Para el Monte Orduña, éstas eran: ASPRO, TURCA, VALOR, SEGUN, DESDE, AXIMO, BOLEO, BEMOL, DOBLE, LETRA, AXDIR. Nótese la debilidad inherente en usar claves cortas y siempre de la misma longitud. Incluso sin conocer la clave, un criptoanalista que descifre un mensaje tras otro cifrado con claves de cinco letras no tendrá que ser muy listo para adivinar que el siguiente mensaje cifrado con un Vigenére también tendrá una clave de cinco letras.

Incluso un sistema tan primitivo podría dar un grado razonable de seguridad ... si se usa correctamente. Pero si se abusa de él y se emplean claves de longitud predecible, es lo mismo que colgarle un cartel que diga "vamos, ataca, soy fácil". Eso puede resultar agradable de oír de labios de una chica guapa en un bar ... pero a un cifrador en su puesto de trabajo, maldita la gracia que le hace.


 

 



error: Contenido protegido