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
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
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