Boletín ENIGMA - nº 75

1 de Abril de 2010

 


Boletín del Taller de Criptografía de Arturo Quirantes Sierra


Dirección original: http://www.cripto.es/enigma/boletin_enigma_75.htm


EDITORIAL

TEMAS DE ACTUALIDAD - Mis plagiadores favoritos
TEMAS DE ACTUALIDAD - Los fallos en sistemas complejos: el caso OpenSSL

CRIPTOGRAFÍA HISTÓRICA - César, el emperador criptógrafo

 


 

 EDITORIAL

 

Hace muchos años, el escritor de ciencia ficción Isaac Asimov ideó un mundo en el que los robots positrónicos servían al hombre. De modo casi inconsciente, inventó la palabra "robótica" para referirse a la ciencia que yacía tras la tecnología de fabricación de robots, y bautizó a la empresa que los fabricaba como US Robots (en la reciente película protagonizada por Will Smith, pasó a llamarse "US Robotics"). Con los años, la palabra robótica ha sustituido a la que habían ideado los expertos (cibernética), e incluso existe la US Robotics, aunque no fabrica robots sino modems.

Recientemente, un amigo del Taller me ha casi convencido de que yo he inventado otro palabro: criptohistoria. Aunque no está siquiera reconocido por la Real Academia, es un término usado por el historiador Francisco Márquez Villanueva, uno de cuyos trabajos se situla "la criptohistoria morisca." Buscando en Google, puede uno interpretar el término criptohistoria como "historia de lo oculto," en referencia a esos flecos de la Historia que no se conocen bien por falta de información o de referencias en papel.

Personalmente, me parece un término muy descriptivo. Pero de repente, voy yo y lo convierto en otra cosa. Necesitaba alguna palabra que me permitiera decir "historia de la criptografía" de forma más breve. Puedo prometer y prometo que no lo hice adrede, pero ahí está. Y discúlpenme ustedes esta pequeña vanagloria, pero me viene muy bien ponerme una medalla (siquiera imaginaria). No tengo abuela, y últimamente llevo una temporada muy estresante. De hecho, pueden leer uno de los motivos que han llevado a este humilde escritor al borde de un ataque de nervios, en el artículo "Mis plagiadores favoritos", cuyo título lo dice todo.

Pero como no sólo de nervios vive el hombre, también analizamos un fallo en una librería criptográfica. Léanlo con disfrute, porque creo que resultará interesante para todos, más allá de los detalles meramente técnicos. Y terminamos con una breve semblanza de uno de los usuarios de cifrado más famosos de la historia, alguien que ocupa una sección de honor en la "criptohistoria." Feliz lectura a todos.

 


 

  TEMAS DE ACTUALIDAD - Mis plagiadores favoritos

 

Siempre he pensado que escribir en Internet es una especie de "contrato social" entre el escritor y el resto del mundo. Yo redacto textos como este mismo Boletín en el entendido de que estoy proporcionando material de la máxima calidad que puedo, que no os voy a engañar y que, si hay incorrecciones en mis textos, ello obedece a fallos y no a malicia. Por su parte, espero que el mundo exterior sepa agradecer el esfuerzo que realizo, y respetar que mi trabajo es mío y no de otros.

Puesto que, en principio, permito la diseminación de mis trabajos cuando no haya ánimo de lucro comercial y se respete la autoría, material como este Boletín pronto aparecerá en multitud de páginas web. En su gran mayoría, acceden a incluir mi nombre de autor y la dirección web de la que procede, lo que no es sino una muestra de buena educación. Los hay que antes de ello se molestan incluso en solicitar mi permiso explícito, cosa que generalmente concedo. Alguna que otra vez, se reconoce mi autoría de forma más difusa y como a regañadientes. Y, por desgracia, a veces mi trabajo se fusila despiadadamente para que alguien gane dinero o notoriedad, sin que los avisos de "se autoriza para fines no comerciales" tengan efecto alguno.

Voy a daros tres ejemplos, en orden creciente de caradura. El escalón bajo lo ocupa una web llamada 24flotilla.com, que trata de la guerra submarina alemana durante la II Guerra Mundial. El autor incluso lo anunció en Kriptópolis allá por julio de 2005. Entré en las páginas relativas a la máquna Enigma, y resulta que me encuentro !con mis propios textos! El autor, advertido, prometió incluir las referencias a mis trabajos, y a los de otros autores que también había copypasteado, como Ramón Ceano. Se limitó a poner vagas referencias del tipo "Bibliografía utilizada: Arturo Quirantes" que tampoco dicen mucho. En la actualidad, los textos en cuestión han desaparecido de su web (o, al menos, yo no consigo encontrarlos). Me molestó ese poco respeto por mi trabajo, pero puesto que la página web era esencialmente de tipo no lucrativo, no me preocupó demasiado.

Más grave resulta cuando los autores se lucran de mi trabajo. Recientemente apareció el libro "Matemáticos, espías y piratas informáticos. Codificación y criptografía", dentro de la colección "El mundo es matemático", de la editorial RBA. Personalmente me parece un libro de valor no muy alto: sus contenidos son correctos pero escasos, más dirigido al gran público que a personas como los lectores de este Boletín, que encontrarán conocidas muchas de las historias que describe el mencionado libro.

Ahora bien, si abren el libro por las páginas 62-63, encontrarán un recuadro titulado "El cifrado de trinchera" encontrarán tres ilustraciones que aparecen en mi Taller de Criptografía. Dichas ilustraciones representan varios tipos de códigos usados durante la Guerra Civil Española. Pueden ustedes verlas en mi web, en http://www.cripto.es/museo/gce/gce.htm (documentos 1, 5 y 6). Ni siquiera se han molestado en cambiar las notas que yo incluyo a dichos documentos. Eso sí, el autor del libro se ha preocupado muy mucho de borrar las fuentes de los documentos. Y no me refiero sólo a mi nombre o página web, sino que ni siquiera incluye de qué archivos proceden los documentos originales. El libro se limita a incluir al comienzo una reseña del tipo "Créditos fotográficos: age fotostock, Aisa, Album, Corbis, Getty Images, iStockfoto". Pues para que conste, provienen del Archivo Militar de Ávila y del Archivo de la Guerra Civil (creo que ahora se llama Archivo de la Memoria Histórica) de Salamanca.

Para rematar la faena, el libro mete dos veces la pata de forma manifiesta. La primera parece más bien culpa de la editorial, porque los documentos que han bajado de mi web aparecen en un tamaño tan pequeño que resultal ilegibles. La segunda es cuando el autor, en el mismo recuadro, afirma que "los británicos intentaron durante el conflicto [la Guerra Civil española] romper el cifrado [de Enigma], sin éxito". Es evidente que el autor no se molestó en leer ninguno de mis boletines. Me pregunto si no debería darles un toque a los de la editorial. Por un lado, es evidente que han cogido las fotografías de mi web, pero por otro no son realmente mías, así que ¿qué opinan ustedes? Yo, por mi parte, no les recomiendo el libro. No lo digo por que me copien imágenes (que también), sino porque tampoco me parece gran cosa por diez euros que cuesta.

Sin embargo, de lo que no tengo duda es de lo que voy a hacer con el medallista de oro en estas Olimpiadas del copieteo. La historia comienza hace algún tiempo en casa de unos amigos, donde me llamó la atención un archivador que formaba parte de un curso sobre comercio electrónico impartido por una empresa del ramo, a la que de momento llamaré Ediciones X. El archivador en cuestión trataba de la seguridad electrónica, incluida la criptografía, así que me faltó tiempo para leerlo.

Y debo decir que comencé a leerlo con gusto. El texto hablaba sobre criptografía, algoritmos de cifra simétricos y asimétricos, firmas digitales, y estaba escrito en un estilo que me gustaba. Recuerdo que pensé "vaya, este tío escribe como yo". Pero al poco, caí en la cuenta de que me sonaba de haberlo leído antes. Tras una breve visita a Internet, caí en la cuenta y le quité las comillas a mi comentario. !Estaba leyendo mis propios escritos!

En efecto, no menos de cuatro de mis primeros Informes estaban reproducidos de forma literal, párrafo tras párrrafo, con tan sólo leves retoques estilísticos aquí y allá. Indagué en el tema, y descubrí que Ediciones X estaba haciendo un copiado de mis Informes desde 2001, es decir, casi diez años. Y, a no ser que lo hayan cambiado, apenas han retocado el original.

De hecho, creo que sí que lo han cambiado. Hace poco me puse en contacto con la editorial, por medio de mi abogado, para aclarar la cuestión. Y he descubierto que su respuesta ha sido triple. Por un lado, me dan largas y se toman todo el tiempo del mundo para contestar. Por otro, intentan derivar la responsabilidad hacia los autores del texto que venden (por más que sea Ediciones X la que ostenta el copyright y se lucra vendiendo el curso). Y finalmente, han retirado dicho curso de la venta. Curiosamente, han sacado otros dos nuevos cursos que también incluyen contenidos sobre criptografía. Qué casualidades tiene la vida ¿no creen?

En este caso lo tengo bien claro. No pienso permitir que nadie se aproveche de mi trabajo para ganar dinero, sin ni tan sólo un "gracias, majete," así que no he tenido más remedio que ponerme serio. Tengo un buen abogado y pruebas de sobra (y alguien debería decirles a Ediciones X que no es tan fácil borrar todos los rastros de Internet), o sea que pueden irse preparando. Me da igual si cambian los cursos de nombre, los borran o los pintan de verde. No quiero decir el pecador todavía, ya que técnicamente sigue el período de negociaciones, pero mucho me temo que esto sólo lo resolverá un juez. Y pienso pedirles una buena indemnización, nada de "toma estos billetes, que es lo que te hubiéramos pagado." Me considero robado e injuriado, y no pienso dejar zanjado el asunto tan fácilmente.

Ya os iré contando cómo termina la cosa. Y algún día, os diré cuál es el curso sobre internet y marketing digital que NO debéis compraros. "Stay tuned."

 


 

 TEMAS DE ACTUALIDAD - Los fallos en sistemas complejos: el caso OpenSSL

 

Uno de los mayores problemas que afronta la informática actual es la complejidad de sus componentes. En el nivel de software, la mayor potencia de los ordenadores actuales hace que los programas informáticos sean cada vez más grandes, más complejos, y por tanto más vulnerables a fallos de todo tipo. De hecho, muchas veces se dejan fallos de software sin parchear porque los desarrolladores saben que la probabilidad de introducir otro fallo en un parche es muy alta. A nivel de hardware, la extrema miniaturización de los componentes electrónicos está comenzando a afectar a su fiabilidad, ya que incluso una partícula alfa puede provocar lo que se llama un "fallo transitorio", en el que el chip puede sufrir fallos de funcionamiento.

Ambos tipos de fallos se combinaron recientemente en lo que puede ser un grave ataque a una de las bibliotecas de programación criptográfica más utilizadas en la actualidad. Para verlo, hemos de describir sus elementos paso a paso. Vamos a comenzar por el sistema de clave pública RSA. Como no se trata de repetirme una y otra vez, me limitaré a esbozar lo que necesitamos aquí.

Nuestra situación es la de un cliente que desea una autenticación por parte de un servidor. Por poner un ejemplo, imaginemos que nosotros somos el cliente y que el servidor forma parte de una notaría. Para ello, el notario creó en su momento un par de claves pública-privada. Básicamente, calculó dos números primos grandes p,q. Después creó los siguientes números:

n = p*q
F = (p-1)*(q-1)
e: número tal que F y e sean primos relativos
d: número tal que e*d == 1 Mod F (donde el signo == se lee "es congruente con" y es una operación de la llamada aritmética modular).

Llamemos (n,e) a la clave pública del notario y (n,d) a su clave privada. La aritmética modular nos asegura que, en teoría, es posible calcular d partiendo de e; en la práctica, el número de cálculos necesarios para ello es tan grande que, a todos los efectos, resulta inviable (el lector interesado en una explicación más profunda del sistema RSA puede encontrarla en el Boletín ENIGMA 46, artículos "RSA y la aritmética modular" I y II).

Veamos como encaja esto en nuestra notaría digital. Digamos que yo quiero que el notario firme digitalmente un documento, que representaré mediante la letra m, así que se lo envío por correo electrónico. El notario firma digitalmente el documento, es decir, crea un paquete de datos s calculado como:

s = (m^d) Mod n

y me envía de vuelta el mensaje con la firma, es decir, el paquete <m,s>. Para que yo pueda verificarlo (de hecho, para que cualquiera pueda verificarlo), no tengo más que aplicar la clave pública del notario a la firma s.

Debido a la forma en que los números e y d se han calculado, resulta que para cualquier mensaje m se cumple que:

m == (m^d)^e Mod n = (m^e)^d Mod n

de forma que, al aplicar la clave pública del notario, yo he calculado:

s^e Mod n = (m^d)^e Mod n = m'

Si m'=m eso significa que en efecto, el notario ha firmado dicho documento. Eso asegura además que el mensaje no ha sido alterado en lo más mínimo.

Nuestro problema radica en las operaciones de exponenciación modular, es decir en calcular cosas del tipo (m^d) Mod n. Como hemos visto muchas veces, de la teoría a la práctica hay mucho trecho. No se trata de que no podamos efectuar dichas exponenciaciones de forma fiable y segura. Poder, podemos. El problema es que el "enemigo" está siempre al acecho, y aprovechará cualquier ventaja para obtener los secretos ajenos.

En este caso, es el par (n,d) el que ha de mantenerse oculto. El notario tendrá que guardarlos y utilizarlos de forma segura, y eso no es tan sencillo. Digamos que guarda sus claves en un lápiz USB, que guarda en una caja fuerte impenetrable. Cuando las inserte en un ordenador, estará a merced de muchos tipos de ataque derivados de un ambiente software inseguro: virus, troyanos, keyloggers. Bien, digamos que de algún modo está progetido contra todos estos vectors de ataque. Aún así, un enemigo inteligente puede aprovecharse de que el cálculo de la exponenciación lleva un cierto tiempo y consume cierta cantidad de potencia eléctrica.

En principio, es posible obtener información sobre la clave sabiendo el tiempo que le lleva al ordenador calcular la exponenciación. Este tipo de ataques basados en tiempo están bien documentados y son una de las vías por las que se puede filtrar información.

Es como una caja fuerte, cuyo dueño hace girar las ruedecillas siempre a la misa velocidad. Una combinación 10-20-10 llevará menos tiempo de introducir que, digamos, la 30-120-60. ¿Se le ocurre a alguien alguna forma de evitar este problema. Evidentemente, podemos diseñar el sistema para que siempre tarde el mismo tiempo en procesar la clave.

Hay, en efecto, algoritmos que permiten efectuar operaciones del tipo (m^d) Mod n a tiempo constante, valga lo que valga el exponente. Un de estos algoritmos, denominado "exponenciación en ventaja fija" (Fixed Window Exponentiation, o FWE), es utilizado, entre otros, por la librería OpenSSL, ampliamente utilizada en multitud de aplicaciones digitales. El algoritmo FWE toma el exponente (d, en nuestro caso), y se fragmenta en diversos trozos ("ventanas") de w bits de longitud cada uno. A continuación, se calcula el exponente modular de cada ventana y se guardan los resultados.

Durante el proceso, se van calculando las potencias m^z, donde z va de 0 a 2^w - 1 , y luego se combinan para calcular lo que deseamos que no es sino m^d. El truco consiste en que, como el exponente d (la clave privada) es siempre el mismo, el proceso de cálculo previo de esas potencias m^z lleva siempre el mismo tiempo.

Este algoritmo permite darle esquinazo a los ataques que miden el tiempo de cálculo. El problema es que introduce otra vía de ataque totalmente diferente. Para entenderla, hemos de saltar del software al hardware. Un chip puede sufrir todo tipo de problemas, durante los cuales los cálculos que efectúa pueden sufrir fallos. En los casos extremos, un pico de voltaje elevado puede llegar a freir el chip, o como mínimo a interrumpir su funcionamento temporalmente. Pero debido al tamaño de los microchips actuales, incluso pequeñas fluctuaciones en la corriente o la tensión pueden afectar a su funcionamiento. De hecho, incluso neutrones o partículas alfa pueden impactar contra algún elemento del chip, de modo que los llamados "fallos transitorios de hardware" que se producen se consideran algo no sólo habitual sino prácticamente inevitables.

En el caso que nos ocupa, un fallo transitorio de hardware en medio de una operación de aritmética modular nos dará un fallo incluso si tal fallo cambiase un solo bit. Si ocurriese en el ordenador del notario durante la fase de cálculo de la firma digital, el resultado sería una firma s' diferente de la firma real s. En ese caso, dicha firma no podría ser verificada. Sería algo así como si, en un proceso de firma manuscrita, alguien le pegase un codazo accidental al notario.

El hecho es que tales codazos digitales podrían ser detectados mediante un sencillo "control de calidad": el notario no tendría más que verificar su firma digital antes de enviarla al destinatario. Ignoro si se llevan a cabo este tipo de controles se llevan a cabo en la práctica (por lo menos, la librería OpenSSL no lo hace), pero incluso si se hacen, dudo que sea para evitar problemas de fallo transitorios de hardware. Después de todos, dichos fallos no suelen suceder todos los días.

Pero ¿y si un atacante pudiese forzar dichos fallos? ¿Podría obtener, a partir de la firma s' mala, información sobre la clave privada? Sorprendentemente, la respuesta a ambas preguntas es sí. Y aquí comenzamos a vislumbrar el problema, recientemente mostrado por Andrea Pellegrini, Valeria Bertacco and Todd Austin (de la Universidad de Michigan). En un artículo titulado "Fault-Based Attack of RSA Authentication", dichos autores muestran que, efectivamente, un atacante podría en teoría forzar fallos transitorios pequeños durante procesos de firma digital, y a partir de ahí extraer la clave privada completamente. Permítaseme denominarlo "ataque mediante fallos transitorios", o AFT.

Introducir fallos transitorios require acceso al ordenador que está efectuando los cálculos, pero pueden obtenerse variando la temperatura o el voltaje levemente. De esa forma, se introduce un error en alguna multiplicación. ¿Recuerdan el esquema FWE? Tenemos una clave d de N bits de longitud. Si la dividimos en bloques ("ventanas") de longitud w, tendremos un total de k = N/w ventanas. Lo que los autores demonstraron matemáticamente es que, si un atacante es capaz de captar un total de S diferentes firmas "malas" (s') debidas a errores en un solo bit en un proceso de multiplicación, tendrá un 50% de probabilidades de recuperar la clave privada d.

Ese número S es aproximadamente superior al número de ventanas. En el límite extremo (ventanas de un solo bit), no necesitaríamos más que uno o dos millares de firmas malas para tener la mitad de las papeletas del sorteo. Lo que es peor, el proceso no requiere mucho tiempo, ya que el algoritmo es de tiempo polinómico. La demostración de este teorema algo farragosa matemáticamente hablando, pero el lector interesado puede leer el artículo completo, disponible en la dirección http://www.eecs.umich.edu/~valeria/research/publications/DATE10RSA.pdf

Los autores probaron experimentalmente su propia receta, usando para ello un Leon3 SoC SPARK corriendo bajo Linux (Kernel 2.6.21) y lo probaron con la librería OpenSSL versión 0.9.8i. Los resultados son, en algunos casos, divertidos. Una de las cosas que probaron fue jugar con el voltaje para intentar conseguir fallos transitorios, en concreto, los que indujesen solamente un cambio de un bit en el lugar adecuado (si se consiguen demasiados fallos de golpe, no se obtiene información útil). Descubrieron, por ejemplo, que alterar el voltaje del chip de 1.26 a 1.25 voltios hacía que más de la mitad de los fallos fuesen de un solo bit. Disminuir el voltaje un 1% más, hasta los 1.23 voltios, disminuía el porcentaje de fallos de un bit a poco más del 30%, pero el número total de fallos aumentaba brutamente: de casi cero a más de 1.500.

El siguiente paso es reducir el voltaje a 1.25 voltios, obtener firmas falsas, y ver qué pueden extraer de ellas. Trabajando durante poco más de cuatro días, un conjunto de 81 ordenadores (Pentium 4, 2.4 GHz, Linux) procesaron un total de 10.000 firmas falsas, de las que solamente pudieron aprovechar 1.015 (el resto tenían demasiados fallos o no tenían ninguno). Con tan sólo 650 firmas malas, consiguieron extraer la clave RSA, de 1024 bits. No sólo eso, sino que aprendieron cómo mejorar la eficiencia del sistema para futuros ataques.

En principio, los autores han comprobado solamente la librería OpenSSL, como he mencionado antes, si bien el ataque AFT es en principio factible en cualquier librería que calcule potencias mediante el esquema FWE mencionado antes. Según informa The Register, una fuente interna del equipo OpenSSL afirmó que se estaba desarrollando un parche, según informa The Register. Mis propias indagaciones, por contra, me inducen a pensar lo contrario: no parece que vaya a haber tal parche, ni tan siquiera si es necesario. Un responsable del equipo OpenSSL afirma que el ataque AFT puede evitarse usando una técnica habitual en RSA, llamada "message blinding" (algo así como "encegamiento de mensaje"). Se trata de un procedimiento diseñado para evitar un ataque temporal contra un algoritmo de exponenciación modular llamado de "elevar al cuadrado y multiplicar" (Square and Multiply), muy parecido al algoritmo de ventanas descrito anteriormente. El "message blinding" consiste en efectuar la exponenciación modular (m^d) Mod n de la siguiente forma:

[ (m*r)^d / r^d ]

donde r es un número aleatorio. Esta resulta ser una solución eficaz para ataques que miden el tiempo, y no fue tenida en cuenta por el equipo del ataque AFT. Tampoco utilizaron otras contramedidas como añadir bits aleatorios ("sal") o formatear adecuadamente la firma.

De hecho, el propio ataque AFT que aquí nos ocupa parece ser una comprobación experimental de un ataque teórico conocido desde hace más de diez años, y llamado ataque BDL (por sus autores originales: Boneh, DeMillo, Lipton). No es de extrañar que mis preguntas hayan irritado a algunos miembros del equipo OpenSSL. Peter Gutmann, a quien imagino poco dado a responder tonterías, me replicó irónicamente que este problema ha sido pospuesto debido a "un parche más urgente para defender OpenSSL contra una debilidad recientemente descubierta, relacionada con unicornios rosa" (palabras textuales). Ben Laurie, en relación a la marea de artículos aparecidos en los medios de comunicación de Internet, explica con algo más de paciencia:

"La molestia consecuencia es que habrá (de hecho, ya la hay) un clamor para que "arreglemos" OpenSSL. Bueno, tengo noticias: asegurar cualquier cosa a la luz de una CPU impredecible parece estar más allá de los objetivos del proyecto OpenSSL ... o de cualquier librería cripto que yo conozca. Ni siquiera estoy seguro de que sea posible."

Más allá del ataque en sí, lo deseo mostrar aquí es el casi increíble grado de complejidad en que los elementos de un sistema pueden interactuar. Lo que se planteó como solución a un ataque de un tipo (averiguar una clave mediante el análisis del tiempo que lleva calcular la exponenciación modular) se revela como la vía de entrada de un segundo ataque totalmente diferente en su forma (inyección de fallos de hardware sutiles para reconstruir la clave). Quién sabe, quizá el año que viene alguien descubra que, debido a ello, cualquier ingeniero informático que trabaje en Apple puede revelar cuatro bits de clave de su móvil cuando alguien le haga cosquillas en el dedo gordo del pie izquierdo. Mejor no demos ideas.

 


 

 CRIPTOGRAFÍA HISTÓRICA - César, el emperador criptógrafo

 

Mientras imperios como el persa y el cartaginés establecían sistemas de inteligencia sin rival en la época, y los griegos usaban innovadoras técnicas esteganográficas y de codificación, Roma permanecía anclada en el pasado. Es posible que el carácter romano tradicional consideraba dichas ideas como algo artificial e indigno. Se registran algunas excepciones, pero en general, la comunidad de inteligencia de Roma era un gran vacío. La única información que los comandantes romanos obtenían en territorio enemigo procedían de sus aliados, y la calidad de aquélla puede juzgarse solamente en virtud de la lealtad de éstos.

Las primeras aplicaciones sistemáticas de inteligencia militar provienen del más famoso de los romanos: Julio César. Su fama como general y político no debe hacernos olvidar su sólida formación académica. Nacido en Roma el año 100 A.C, fue educado con maestros griegos. Era versado en varios idiomas, incluido el hebreo y varios dialectos galos. Tras una brillante carrera en la arena política, César fue designado en 69 AC como cuestor de la Hispania Ulterior. Fue su primer contacto con la actual España, aunque no el último, ya que algunos años después volvió a la misma provincia como gobernador. En su tercer viaje, ya durante el período de guerra civil contra Pompeyo, César dio muestras de su maestría en el campo de inteligencia militar.

Antes, sin embargo, debemos dirigirnos hacia una de sus mayores conquistas: la Galia. La guerra de la Galias, escrita por el propio César, es un compendio magistral sobre la importancia del conocimiento del terreno en todos sus aspectos. El lector se ve inmerso en una sucesión de pueblos, toponímicos, ríos, emplazamientos civiles y militares, donde la imperiosa necesidad de César por saber qué ocurre más allá de la próxima colina se muestra en forma evidente desde sus primera palabras ("Toda la Galia se encuentra dividida en tres partes").

Fue allí donde encontramos los primeros testimonios de criptografía cesariana. En el año 57 a.C., la legión al mando de Cicerón es asediada en sus cuarteles de invierno ubicados en la región de los nervios, en la actual Bélgica. Un correo con un mensaje de ayuda es interceptado. Finalmente, un mensajero logra llegar hasta el campamento de César, quien se pone en camino a marchas forzadas. Para advertir de su llegada a Cicerón,

"[César] convence a uno de los jinetes galos con grandes recompensas que lleve un mensaje a Cicerón. Éste lo envía con caracteres griegos, para que, caso de que llegara a ser interceptado por el enemigo, no llegue a conocer nuestros planes. Le advierte que, si no puede acercarse, envíe el mensaje dentro del campamento, atado a la correa del dardo..."

Nótese que no se trata de utilizar el lenguaje griego, sino solamente su alfabeto. Esto nos da un sistema de sustitución monoalfabética sencilla: a por a, beta por b, gamma por c, etc. La seguridad de este sistema desaparecía, por supuesto, si entre las tribus galas alzadas había quien supiese leer latín en caracteres griegos. No resultaba imposible, ya que el mismo libro de César da testimonio de que los druidas galos hacen uso del alfabeto griego. En opinión del propio Julio César, esto lo hacían porque no quieren que su doctrina sea del dominio del vulgo, lo que muestra que el noble romano no fue el único en utilizar el cifrado mediante letras griegas.

Conquistada y pacificada la Galia, la atención de César se dirigió hacia Roma, donde su enemistad con Pompeyo y los partidarios de la República desembocó en guerra civil. Tras cruzar el Rubicón, César ocupó Italia en el 49 aC. Pompeyo fue derrotado en las llanuras de Farsalia (Grecia) y poco después fue asesinado en Alejandría, donde intentó refugiarse.

Los seguidores de Pompeyo, entre los que se contaban dos de sus hijos, se refugiaron en Hispania. Allí encontramos un ejemplo de "comint", o inteligencia de comunicaciones. En sus comentarios sobre la guerra civil en Hispania, César cita la interceptación de una carta de su enemigo Pompeyo a la ciudad de Ursao (actual Osuna). En un intento por asegurarse la fidelidad de sus habitantes, Pompeyo les aseguró que las tropas inexpertas de César no osarían atacar su ejército en terreno llano, al tiempo que les prometió un refuerzo de varias cohortes. Las "tropas inexpertas", muy por el contrario, atacaron y vencieron a un enemigo que gozaba de superioridad numérica y la protección de una ciudad fortificada.

Julio César es famoso en la historia de la criptografía por dar su nombre a un sistema de cifrado. La descripción más conocida se debe a Suetonio, quien en su Historia y vida de los Césares nos cuenta:

"Se han conservado, por otra parte, sus cartas a Cicerón y las que dirigía a sus familiares sobre asuntos domésticos. Cuando tenía que enviarles alguna información secreta la escribía en clave, esto es, disponía el orden de las letras de tal modo que no se pudiese reconstruir ninguna palabra si se quiere descubrir lo que dice y descifrarlo, hay que sustituir cada letra por la que le sigue en tercer lugar, esto es, la D sustituye a la A, y así las restantes".

Si usamos el alfabeto de hoy día, de 26 letras, obtendríamos la siguiente correspondencia entre textos en claro y cifrado:

Alfabeto en 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
Alfabeto cifrado:  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

El nombre de Suetonio se transformaría así en VXHWRPLR. Este sistema se conoce como cifra de César. Por extensión, se llama cifra de César a cualquier sistema de sustitución monoalfabética simple en el que el alfabeto cifrado lleva el orden alfabético habitual, pero se encuentra desplazado varias posiciones respecto al alfabeto en claro. Podríamos así construir hasta 25 alfabetos cifrados:

En 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
Cifrado 1:  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
Cifrado 2:  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
Cifrado 3:  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
.. .. .. ..
Cifrado 25: 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


Suetonio nos cuenta también que Octavio Augusto usó un sistema similar, sustituyendo cada letra por la que le sigue, salvo la X, que se convertía en AA.

La cifra de César es vulnerable ante un ataque de "fuerza bruta" en el que, sencillamente, se prueban todas las posibles claves. En este caso, hay tantas "claves" como letras en el alfabeto menos una (la transformación trivial, que dejaría el texto intacto). Como ejemplo, probemos a descifrar el siguiente texto:

    HPXPÑXJDUGHÑDODPFKDGHFXBPROEUHPRTXLHURDFRUGDUOH

Podemos ir probando sin más que ir sustituyendo cada letra por la que ocupa el lugar anterior en el alfabeto. Eso nos daría GOWONWICTF… poco prometedor. Pero probemos todas las claves posible:

    HPXPÑXJDUGHÑDODPFKDGHFXBPROEUHPRTXLHURDFRUGDUOH
    GOWONWICTFGNC...
    FÑVÑMVHBSEFKB...
    ENUNLUGARDELA...


¡Ya lo tenemos! Sustituyendo cada letra por la de tres lugares atrás en el alfabeto, obtenemos las primeras letras del Quijote. Por supuesto, un ataque de este tipo presupone que el enemigo conoce el método de cifrado, lo que es mucho suponer en la Roma de César, donde incluso el conocimiento del latín era escaso fuera de las ciudades y colonias.

Según cuenta el autor Aulo Gelo en sus Noches Áticas, un gramático llamado Probo escribió un tratado en el que incluía el significado secreto de las letras en la composición de las epístolas de César. Por desgracia, el tratado de Probo se ha perdido, y no hay forma de saber si se refería a la cifra clásica de César, a la sustitución de letras romanas por caracteres griegos, o a algún otro tipo de cifrado más sofisticado. Es posible incluso que se refieriese a un sistema de caracteres denominado "notas tironianas". Con tal nombre se conoce un sistema taquigráfico atribuido a Tulio Tirón, un liberto de Cicerón que las utilizaba para tomar notas de los discursos de su amo. Consta que ya en el 63 AC fue usado para anotar la primera Catilinaria en el Senado Romano, pero según Plutarco este sistema era utilizado mucho antes, y posiblemente fue introducido entre los griegos por Jenofonte.

Es importante recalcar que, fuera de las escasas referencia de autores clásicos antes citados, no hay evidencias de que César realmente llegase a usar la cifra que hoy conocemos con su nombre. Incluso los restos de información existentes hoy día deben tomarse con precaución, ya que ni Suetonio ni Aulo Gelo son contemporáneos de César, y éste guardó silencio sobre el tema. Resulta, no obstante, sorprendente la durabilidad de su cifra, que llega casi hasta nuestros tiempos. La cifra de César fue utilizada por los generales confederados Johnston y Beauregard en la víspera de la batalla de Shiloh. Y en 1915 por los ejércitos rusos. En la actualidad, los internautas utilizan profusamente un sistema denominado ROT-13 (una cifra de César donde cada letra se sustituye por la que ocupa 13 lugares más adelante en el alfabeto) para ocultar el final de un chiste o la solución de un acertijo ("spoiler"), de forma similar a como una revista que imprime boca abajo la solución de un acertijo.

Y sus aplicaciones no sólo se limitan a acertijos infantiles. En abril de 2006, el jefe de la Mafia Bernardo Provenzano (capo di tutti capi) fue detenido a las afueras del pueblo de Corleone, en Sicilia. Se descubrió que enviaba sus órdenes mediante mensajes escritos que cifraba mediante el sistema de César ¡tal y como lo reseñó Suetonio dos mil años atrás! Ante las dudas sobre su uso en la época romana hemos de aplicar el dicho de "si non é vero, é ben trovato". El nombre de César permanecerá para siempre unido a otras singularidades famosas pero de veracidad histórica discutible, como el nacimiento por cesárea, el sistema de cifrado bautizado con su nombre, o la existencia de cierta irreductible aldea gala.

 


 

El boletín ENIGMA es una publicación gratuita del Taller de Criptografía, y se rige por las normas de la licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual. Se permite su libre copia, distribución y comunicación para fines no lucrativos, citando nombre y referencia.

Para más información, véase la licencia Creative Commons en sus formas reducida y completa:
http://www.cripto.es/licencia/deed.es.htm
http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es

PARA DARSE DE ALTA: envíe un mensaje a la dirección alta arroba cripto.es añadiendo las palabras alta_enigma en el asunto (subject).

PARA DARSE DE BAJA, envíe un mensaje a la dirección baja arroba cripto.es añadiendo las palabras baja_enigma en el asunto (subject)

Para comentarios a este boletín (dudas, preguntas, consultas, críticas, noticias, colaboraciones, etc.), estoy a su disposición en la dirección noticias arroba cripto.es

Página del Boletín Enigma (incluyendo números atrasados): http://www.cripto.es/enigma.htm

(c) Arturo Quirantes 2007

 


Vuelta a la Página principal del Boletín ENIGMA