Boletín ENIGMA - nº 42
1 Abril 2006
Boletín del Taller de Criptografía
de Arturo Quirantes Sierra
Dirección original: http://www.cripto.es/enigma/boletin_enigma_42.htm
TEMAS DE ACTUALIDAD - Tarjetas de débito: un fraude masivo
CRIPTOGRAFÍA HISTÓRICA - Rompiendo códigos Enigma ... hoy
LIBERTAD VIGILADA - Los "ojos y oídos" de Norteamérica
Con la excepción de la telefonía móvil, la industria de tarjetas bancarias
(débito y crédito) constituye la aplicación a más grande escala de la
criptografía en el ámbito personal. Hoy día "tiramos de tarjeta" para pagar
desde la gasolina del coche hasta las lechugas del supermercado. En la
trastienda, un entramado de protocolos criptográficos garantizan la seguridad de
las transacciones. Al menos, claro, en teoría.
Estamos más o menos al tanto de los riesgos asociados a un hurto o mal uso de
una tarjeta, y por eso tomamos nuestras precauciones: no las perdemos de vista,
memorizamos el PIN en lugar de escribirlo, no sacamos dinero si hay alguien
obsevando detrás de nosotros, etc. Pero ¿qué pasa si los atacantes escogen los
propios entresijos del sistema para hacer de las suyas? De repente, las tarjetas
amenazadas pueden contarse por millones. Este mes hemos visto un ejemplo, con la
novedad añadida de que no se trataba de tarjetas de crédito, sino de débito.
Pasen y asústense.
En otro orden de cosas, nuestra máquina de cifra favorita sigue dando que
hablar. Recientemente ha sido noticia un ataque contra mensajes cifrados con
Enigma. Un ataque "legal", claro, que involucra miles de ordenadores en modo de
computación distribuida. El interés que se ha despertado sobrepasa con mucho el
"valor" de la información descifrada, y ha sido reseñada en todo tipo de medios
de comunicación, desde Kriptópolis y The Register hasta "La Aventura de la
Historia" (acabo de leerlo en el ejemplar de abril). Aquí podrá ver cómo incluso
en nuestros días descifrar un mensaje de Enigma implica una tarea ardua.
!Ah!, y un aviso de última hora. Hace unos días una máquina Enigma ha salido a
la venta en eBay. Puede optar a la puja, o sencillamente echar un vistazo a
algunas fotos, en la dirección
http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=6265092168. Se trata del
modelo clásico militar, de tres rotores con tablero de conexión. Dése prisa,
porque la puja ese cierra próximo lunes 3 de Abril a las 21:00, hora española
(19:00 horas GMT). En el momento de cerrar esta edición, el mejor postor ofrece
27.050 euros (unos 32.800 dólares USA). Si algún lector tiene ganas de verla
lucir en su escritorio, todavía está a tiempo. Le deseo suerte.
TEMAS DE ACTUALIDAD - Tarjetas de débito: un fraude masivo
Se
supone que nuestras tarjetas bancarias están protegidas mediante un número
secreto (PIN). Se supone que nadie que nos robe la tarjeta podrá usarla sin
nuestro PIN. Sin embargo, se siguen robando tarjetas y los ladrones siguen
usándolas para comprar a nuestra cuenta. Las empresas que emiten dichas tarjetas
no nos dicen cómo, pero al menos nos protegen contra dichos hurtos por encima de
cierta cantidad. Pero ¿qué pasa si los ladrones atacan las tarjetas de débito?
En el Boletín ENIGMA nº 12 ("El PIN y el ataque de decimalización") aparecen
algunos detalles, pero vamos a ampliar los primeros pasos. Vamos a ver. Tenemos
una tarjeta con una banda magnética, que en principio nos permite sacar dinero
del cajero. La banda debe tener información sobre nuestro número de cuenta y
PIN, pero este último no debe estar "en claro". Evidentemente, habrá que
cifrarlo. Pero ¿cómo se hace esto de forma segura?
Existen diversas variantes, pero el mecanismo básico es el siguiente. El cajero
automático guarda en sus tripas una clave secreta, que denominaremos K. Cuando
metemos nuestra tarjeta, el cajero cifra nuestro número de cuenta (NC) con el
algoritmo DES, usando K como la clave. Es decir: hacemos DES(NC,K). El resultado
es una cadena de 64 bits que pasamos a formato hexadecimal, digamos:
A2CE126C69AEC82D. A continuación, pasamos el resultado a formato decimal
mediante el proceso de "decimalización" que consiste en sustituir los dígitos
A,B,C,D,E,F por 0,1,2,3,4,5 respectivamente, y dejar intactos los demás. Tomamos
los cuatro primeros dígitos, y ya tenemos nuestro PIN. El proceso sería:
Nº
cuenta: 8807012345691715
Clave K:
1E8A963BD167845A
Resultado:
A2CE126C69AEC82D
Paso a decimal
0224126269042823
PIN:
0224
El resultado (0224) es el PIN que nos envía el banco cuando nos da la tarjeta.
Por supuesto, siempre nos dicen que es mejor cambiarlo, y hemos de tener la
posibilidad de cambiarlo siempre que queramos. En realidad, lo que hacemos es
añadir un número de cuatro dígitos ("offset"), de forma que PIN original +
offset = PIN del cliente. Si yo quiero, digamos, tener un PIN igual a 8002, el
offset será 7778. De modo que yo si quiero sacar pasta del cajero, le tengo que
introducir la tarjeta y un PIN igual a 8002; de otro modo, no hay un duro.
Existen muchas formas de llevar a cabo un fraude. Una de las más usadas en la
actualidad consiste en "trucar" el cajero. Los defraudadores instalan un lector
especial de tarjetas que copia los datos de la tarjeta magnética; al mismo
tiempo, una minicámara oculta graba los dedos del usuario al teclear el PIN. El
cajero "avisa" de que no hay conexión, el usuario se va ... y los amigos de lo
ajeno ya tienen copia de la banda magnética y del PIN. En cierta ocasión, el
proceso de copiado lo hacía un ordenador portátil instalado en el cajero por un
empleado de mantenimiento. En cierto banco, el cajero estaba configurado de tal
forma que, cuando se introducía una tarjeta telefónica, creía que se trataba de
la tarjeta de débito introducida anteriormente. Así que el ladrón se pone en
cola, mira por encima del hombro del señor que tiene delante en la cola (para
obtener su PIN), luego inserta una tarjeta de teléfonos, y a ponerse las botas
se ha dicho. En otras ocasiones, el PIN se obtiene así y el número de cuanta se
saca del recibo que imprime el cajero, recibo que mucha gente se limita a tirar
a la papelera más cercana.
Uno de los ataques más divertidos que he leído se basaba en un sistema de prueba
del propio cajero: cuando se introducía una secuencia de catorce dígitos, el
cajero escupía diez billetes. El problema es que un banco no tuvo mejor
ocurrencia que imprimir dicha secuencia en un manual de uso para empleados, de
modo que se fue corriendo la voz. Ya pueden ustedes imaginarse el resultado. Hay
ladrones que llegaron a montar un cajero automático falso en un centro
comercial: copiaba las bandas magnéticas y el PIN, largaba a los clientes con el
"no hay fondos, lo sentimos", y al final del día llegaban los pillos y se
llevaban el botín en forma de información.
Algunas veces, la propia torpeza de los bancos creaba agujeros de seguridad. El
usar un PIN de cuatro cifras permitía que la probabilidad de conseguir acceder
al sistema de forma no autorizada fuese de una entre 10.000. Cierto banco emitía
números PIN del tipo ABCD, pero con la condición de que A+D=B+C, lo que reducía
la cantidad de números PIN posibles. Otro banco recomendó a sus clientes
"recifrar" su PIN de una forma curiosa. Supongamos que el PIN es 2256. Escoja
una palabra de cuatro letras ("azul"), y ponga dichas letras en una tarjeta de
papel o cartón que forme una rejilla, de forma que estén en la columna indicada
por los números del PIN. Es decir, ponemos "a" en la columna segunda, "z" en la
misma columna, "u" en la columna 5ª y "l" en la sexta, tal que así:
1 2 3 4 5 6 7 8 9 0
a
z
u
l
A continuación, llenamos los demás espacios con letras al azar. Sólo el usuario
legítimo, que conoce la palabra clave, puede reconstruir el PIN; si un ladrón
nos roba la tarjetita en la que la hemos escrito, sólo encontrará un
batiburrillo ininteligible. Ingenioso, ¿no? El problema es ... que no hay tantas
palabras de cuatro letras. Un ladrón ingeniso podría probar a construir palabras
con letras tomadas de las cuatro filas, como si estuviese jugando al Master
Mind, e ir probando posibles claves.
Podríamos seguir poniendo ejemplos, pero no estamos aquí para eso. Estos son
casos de errores humanos, ataques invididuales y cosas así. Lo importante aquí
es que la seguridad criptográfica subyace en el hecho de que el cajero cifra
nuestro número de cuenta con la clave K, usando el algoritmo DES. Mantener el
PIN secreto por nuestro lado es tan importante como mantener secreto K por el
otro.
La forma en que la clave K se genera y distribuye a un cajero particular es
bastante compleja. Depende del banco, del cajero, de la zona geográfica, y de
varias variables más. En un caso sencillo, el responsable central del banco
envía una "clave de sesión" a una sucursal bancaria, en forma impresa y dividida
en dos partes, que se confían a dos mensajeros distintos. En la sucursal, los
mensajeros reconstruyen la clave. El banco central envía entonces la clave K del
cajero, cifrada con la clave de sesión; la sucursal descifra el mensaje y
consigue K.
Esto parece fácil, pero imaginen la cantidad de mensajeros que habría que enviar
por todo el país (!o el mundo, si el banco es internacional!), con el objeto de
ir actualizando las claves K de cada cajero. Una solución es hacer que diversas
sucursales bancarias compartan una clave de sesión (que denominaremos "clave de
zona"). Crear claves de zona disminuye la presión sobre los sistemas de
intercambio de claves, pero aumenta el valor potencial de una ruptura. Si un
ladrón obtuviese una copia de la clave del cajero K, podría en principio obtener
toda la información de las tarjetas introducidas en dicho cajero (números de
cuenta y PIN), al menos hasta que dicha clave K sea cambiada. Pero obtener la
clave de zona nos daría acceso potencial a la información de todas las tarjetas
introducidas en TODOS LOS CAJEROS DE LA ZONA.
Es decir, el valor de la clave de zona es muy superior al de la clave K del
cajero, del mismo modo que una llave maestra del edificio es mucho más útil que
la llave del trastero del 5º C. Y para empeorar las cosas, la red incluirá no
solamente bancos (que se supone saben de seguridad) ubicados en sucursales
bancarias, sino también comercios que acepten tarjetas de débito con
introducción de PIN.
(El lector interesado en ampliar información puede leer el artículo de Ross
Anderson "Why cryptosystems fail", en el que me he basado:
http://www.cl.cam.ac.uk/ftp/users/rja14/wcf.pdf)
Y ahora, el motivo por el que estamos hablando de las tarjetas de débito. Hasta
ahora, la preocupación estaba en el fraude en tarjetas de crédito. La motivación
era que los daños potenciales eran mayores, ya que pueden gastar lo que tenemos
y lo que no. Por ese motivo, los bancos han invertido mucho esfuerzo en limitar
la cantidad del fraude, de forma que un cliente no se quede entrampado por algo
que no ha comprado. En caso de fraude, el banco prefiere aceptar las pérdidas a
perder credibilidad y clientes. Esto presupune, claro, que el fraude se hace
tarjeta a tarjeta. Pero ¿y si los defraudadores consiguiesen atacar tarjetas en
grandes números, en lugar de una a una?
A lo largo de Marzo de 2006 ha habido un fraude masivo en tarjetas de débito. Y
al decir "masivo" me refiero a centenares de miles de tarjetas, tal vez
millones. Un grupo de ladrones ha logrado irrumpir en el sistema, y usando la
información para retirar fondos en cualquier lugar del mundo. A menudo, la
primera indicación que tiene el usuario legítimo de que algo va mal es un
extracto bancario en el que aparecen retiradas de fondos en países que ni
siquiera sabía dónde están.
Según parece -la cosa no está aún muy clara-, los ladrones obtuvieron la
información de las cuentas corrientes por medio de una "tercera empresa", esto
es, alguien que recibe dicha información. Puede ser una empresa que externaliza
tareas del banco (como hacer agregación o "minería" de datos, buzoneo masivo,
campañas de publicidad, promociones nuevas, etc). También puede ser una de esas
empresas a las que el banco cede nuestros datos por diversos motivos, si
nosotros no hemos dicho que no. Tomen su contrato bancario, o de tarjeta, y vean
a cuánta gente le pueden ceder sus datos. De hecho, párese a pensar cuánta gente
conoce su número de cuenta, desde Telefónica a el Corte Inglés, su operador de
ADSL, el club Repsol, la tarjeta de Alcampo, la domiciliación de impuestos
municipales ... la lista es casi infinita. En algunos casos, las empresas ceden
(vamos, que venden al mejor postor) dicha información, pero en otros casos ha
habido robos o pérdidas masivas de datos en diversas empresas. Al menos, se
conocen varios casos en EEUU; en nuestro país, o no sucede, o no nos lo dicen.
Las noticias que se conocen de momento, como digo, son confusas. Se barajan
cifras de al menos 200.000 tarjetas afectadas por esta brecha en la seguridad, y
eso sólo contando clientes del Bank of America. Otros bancos afectados incluyen
Washington Mutual y Wells Fargo (sí, la de las diligencias que siempre asaltan
en las películas del Oeste). Se ha informado de transacciones fraudulentas
realizadas en Inglaterra, Francia, Rusia, China ... y sí, España. Si hay algún
lector de este Boletín afectado por dicho fraude, o si conoce de algún caso
(especialmente en España), me gustaría conocer más detalles, de forma anónima
por supuesto.
Citibank también fue afectado, y de forma tan grave que se vio obligado a
bloquear temporalmente todas las transacciones basadas en PIN de clientes en
Canadá, Rusia y el Reino Unido. Varias personas han sido detenidas en EEUU con
relación a este fraude. Respecto al origen de la fuga, se sospecha que el robo
de información se cometió en la empresa de suministros de material de oficina
OfficeMax (ellos, de momento, lo niegan). Pero el problema fundamental es: aún
cuando los ladrones hayan conseguido echar mano a un listado de números de
cuenta, ¿cómo han conseguido todos esos cientos de miles de números PIN? ¿Han
accedido a alguna clave de zona, robando así PINes a montones?
Aún no se sabe, pero parece que la respuesta es no. Aunque las hipótesis que
circulan de momento no son nada alentadoras. Se cree que los datos de PIN fueron
robados en masa junto con la información de números de cuenta. Al parecer,
muchas tiendas que usan el sistema de tarjeta con PIN para cobros guardan una
copia del PIN. Se supone que no debería quedar rastro del PIN una vez la
transacción ha finalizado, pero no siempre es así. En ocasiones, el vendedor
guarda dichos PIN cifrados en bloque, es decir, formando un archivo único y
cifrado. La clave para cifrar dicho bloque suele guardarse en la misma red, de
modo que un asaltante electrónico no tiene más que tomar el bloque de números
PIN, la clave para descifrarlos y ya está. Y lo peor es que lo mismo el propio
vendedor ignora lo que está sucediendo en el sistema.
Resulta irónico que la introducción del PIN en el tarjetero de un restaurante,
lejos de ser un elemento de seguridad, pueda estar contribuyendo a aumentar la
vulnerabilidad del sistema. Por de pronto, sugiero no pagar con tarjeta en
situaciones en las que hay que teclear el PIN. Respecto a los cajeros, los
bancos han ido aprendiendo sobre la marcha y resultan mucho más seguros, pero
sigue siendo prudente usar la sensatez: mirar atentamente en busca de cámaras
oculta cerca del teclado, o de alteraciones en el lector de tarjetas, no teclear
el PIN si hay alguien cerca mirando, no dejarse el recibo del cajero, etc.
Y, por supuesto, prepararse para lo que viene. Tarde o temprano, los amigos de
lo ajeno aprenderán cómo interceptar las claves K de los cajeros, o aún mejor,
las claves de zona. O diseñarán "DES-crackers" para obtener la clave correcta
mediante fuerza bruta. Mientras tanto, las redes bancarias siguen usando DES de
forma masiva, y se toman su tiempo para fortalecer la seguridad de las tarjetas.
Recuerdo haber asistido como ponente en una conferencia sobre seguridad
informática en junio de 2002. Allí, el director de I+D de un gran banco español
(no diré cuál) nos explicó con todo lujo de detalles la implantación de nuevas
tarjetas con chip incorporado, mecanismos de seguridad novedosos y sistemas
biométricos de autenticación, incluso algunos basados en el reconocimiento de
voz. Fue lo bastante honrado para reconocer que no los fabricaban de forma
masiva por motivos económicos, pero que en un par de años irán sustituyendo las
tarjetas actuales. Cuatro años después, sigo esperando ver las nuevas tarjetas.
Mala forma de proteger su dinero. Corrijo. Nuestro dinero.
CRIPTOGRAFÍA HISTÓRICA - Rompiendo códigos Enigma ... hoy
Todos los lectores del Boletín ENIGMA sabrán de los esfuerzos aliados por
reventar los códigos Enigma alemanes. Hemos descrito la máquina, algunos de los
ataques contra ellas y unos pocos ejemplos de lo que significó en el campo de
batalla. Por supuesto, tras la Segunda Guerra Mundial el uso de la máquina
Enigma se limitó a algunos países del Tercer Mundo (incluida, ejem, España en
aquella época). La lógica nos haría suponer que todos los mensajes Enigma fueron
ya descifrados hace décadas.
!Pues resulta que no! Hay mensajes Enigma que, incluso hoy, permanecen sin
descifrar. Y los potentes medios informáticos modernos se las ven y se las
desean contra ellos. ¿Cómo es eso posible?
Para explicar esto, hemos de razonar un poco. En primer lugar, aunque parezca de
perogrullo, es evidente que los mensajes de la Enigma alemana dejaron de tener
interés al acabar la guerra. Algunos mensajes relativos a temas estratégicos
(alianzas, solución final de los judíos, despliegues de tropas o naves) podrían
todavía tener un cierto interés, y seguro que esos ya fueron descifrados hace
tiempo.
De hecho, buena parte de los archivos alemanes fue destruido durante la guerra,
bien por los aliados, bien por las propias autoridades germanas, lo que hace
difícil obtener las claves de los mensajes. Pero si se tiene acceso al resto de
los mensajes, no tiene mucho interés descifrar transmisiones. No podemos menos
que imaginarnos la cantidad de documentación que los aliados capturaron tras el
término de la guerra. De modo que, si tenemos el cuaderno de bitácora del
capitán del submarino, o el diario de operaciones de la división ¿a qué
preocuparse de lo que dijera este o aquél mensaje cifrado? Una vez acabada la
guerra , también se acabó la urgencia por descifrar mensajes.
De forma que, si luego aparecen más mensajes Enigma por descifrar, tendrán un
interés histórico más que militar o político. Es ahí donde entran los
historiadores y los aficionados al tema. Yo mismo tengo mensajes de hace cuatro
siglos, algunos de ellos cifrados. La mayoría son legibles, bien porque se tenga
a mano una copia del mismo texto en claro, bien porque las cifras hayan
sobrevivido. En algunos casos me encuentro con un mensaje cifrado ilegible; pero
estoy seguro que un criptoanalista competente se lo comería con patatas en pocos
minutos.
Sin embargo, la Enigma es una patata muy dura. La versión militar disponía de un
tablero de conexiones que dificultaba enormemente los esfuerzos de los
atacantes. En el caso de la Enigma naval, la situación era aún peor. A pesar de
todo, los aliados pudieron con casi todas ellas, usando máquinas muy inferiores
al ordenador con el que estoy escribiendo estas palabras. Pero los aliados se
aprovechaban de "chuletas", es decir, suponían una cierta forma para el texto
llano y, a partir de ahí, iban probando. Para conocer, o al menos intuir, dichas
chuletas, contaban con el conocimiento de meses o años escudriñando al enemigo.
Un operador que descifrase las claves de la misma unidad alemana durante años
podría llegar a "olerse" el tipo de mensaje, la clave usada, los fallos del
cifrador, etc.
Todo eso ha desaparecido hoy. No existen "bombas" capaces de procesar mensajes
Enigma a partir de una suposición y lograr una solución (bueno, sí hay algunas
bombas todavía, !pero están en museos!). La gente que las usaba están muertos o
en jubilación. Las décadas que nos separan de ellos nos han privado de los
medios que usaron para hacer su trabajo.
De acuerdo, entonces probemos con la fuerza bruta. Tenemos ordenadores de
potencia inusitada, así que simulemos una Enigma y probemos todas las
posibilidades. Por supuesto, nuestros ordenadores modernos son incomparablemente
más rápidos y potentes que los cachivaches de los años 40, así que no deberíamos
tener problemas. Claro que, antes, sería mejor hacer algunos números.
Para ello, imaginen que estamos tratando la Enigma del ejército. En principio,
podríamos probar todas las posibles combinaciones de rotores, sus diferentes
orientaciones y las de los anillos. Podemos escoger tres rotores de entre cinco,
lo que nos da 60 posibilidades diferentes. Para cada una de ellas, habría que
probar cada una de las 26 formas diferentes de ajustar cada rotor y cada anillo
(que recubre el rotor y nos indica cuándo va a girar). Es decir: 60 elecciones
de los rotores, multiplicado por 26*26*26 orientaciones de los rotores y por
otras 26*26*26 orientaciones de los anillos. Eso nos da un número enorme de
combinaciones: 18.534.946.560
Y aún nos faltan los conectores del tablero (usados para intercambiar letras a
pares justo antes y después de pasar por los rotores). Si conectamos diez pares
de letras entre sí, el número de posibilidades es de 150.738.274.937.250 (ver
"Criptoanálisis de Enigma II", en el Boletín ENIGMA nº 9).
Multipliquemos ambas cifras, y he aquí el total de combinaciones que hemos de
probar:
2.793.925.870.508.516.103.360.000
Esto es como romper una clave simétrica de 81 bits, o por decirlo de otro modo
!es 40.000.000 veces más difícil que reventar una clave DES!
¿Se nos va pasando ya la arrogancia?
En efecto, incluso en nuestros días, resolver un mensaje cifrado con la máquina
Enigma es todo un reto. Y, por supuesto, los de la Enigma naval son mucho más
difíciles. Sin embargo, como en los buenos tiempos de Bletchley Park, el camino
hacia la victoria es una combinación de potencia de cálculo e ingenio. Mente y
máquina. Bien, vamos a ponernos manos a la obra.
El procedimiento a seguir consiste en ir probando diversas combinaciones de
posición y orientación de rotores, orientación de anillos y conectores, pero no
hacerlo a lo loco. Sería algo así como buscar una montaña sin dejar de mirar el
suelo. El procedimiento de "fuerza bruta" consistiría en ir probando todos los
puntos de la región, medir su altura y ver en qué punto estamos más alto. Por
contra, un mecanismo más eficaz sería ir moviéndose en la dirección en que el
nivel del suelo suba; si en un camino determinado vemos que bajamos, entonces
damos la vuelta y probamos por otro lado. Es decir, las diversas disposiciones
("settings") de la máquina la vamos escogiendo en función de un parámetro que
nos indique hasta qué punto nos vamos acercando al objetivo.
El objetivo, por supuesto, es conseguir un texto llano en alemán. Y el parámetro
que nos indicará si vamos bien o mal es el denominado Índice de Coincidencia
(IC). Para explicarlo sin extendernos demasiado, el IC nos indica si un texto
está formado por caracteres aleatorios o si, por el contrario, está estructurado
de alguna forma. Cualquier lenguaje tiene estructura y unas reglas que seguir (p
ej: en español la Q es seguida siempre por la U, y después viene una vocal; hay
más sílabas ES que EN; la E es más frecuente que la I, etc).
Para cuantificarlo se hace lo siguiente: sea f(A) el número de veces que aparece
la letra A en un texto (llano, cifrado o del tipo que sea); f(B) el número de
veces que aparece la letra B, y así sucesivamente; y sea N el número de letras.
Se define el IC como:
IC = [f(A)*(f(A)-1) + f(B)*(f(B)-1)
... - f(Z)*(f(Z)-1)]/[N*(N-1)]
Recomiendo el Boletín ENIGMA nº 32 para los lectores que deseen más información
acerca del IC. El IC tiene un valor de 0.0775 para el idioma español (0.0762
para el alemán), en tanto que un texto aleatorio tiene un IC de 0.0385 (para un
alfabeto de 26 letras).
Uno de los trabajos pioneros en la aplicación del IC al desciframiento de
mensajes Enigma es el artículo "Ciphertext-only cryptanalysis of Enigma", de
James Gillogly, publicado en la revista Cryptologia (Octubre 1995). Su propósito
era probar que, en determinadas circunstancias, un mensaje Enigma podía ser
reventado sin probar todas las posibilidades de anillos, rotores y conectores.
Su procedimiento sigue los siguientes pasos:
1) Con el tablero de conexiones desactivado (es decir, sin conectores) y con los
anillos de los rotores en la posición 1 1 1, probaba cada uno de los 60 modos
distintos de disponer los rotores (Gillogly consideró los cinco posibles rotores
de la Enigma militar). Para cada modo, había 26*26*26 posibles orientaciones de
los rotores, lo que le daba 60*26*26*26 = 1.054.560 disposiciones de los
anillos. Ese es un número elevado, pero factible para un PC actual. Para cada
una de esas combinaciones, calculaba el IC del mensaje descifrado, y escogía la
combinación que le diera el IC más elevado. En el ejemplo publicado, la mejor
combinación fue la siguiente: orden de rotores II, I, III; orientación de los
rotores 2, 11, 6; IC=0.0461.
Como ven, el IC obtenido dista bastante del que esperaríamos para el alemán, lo
que significa que aún no hemos llegado al resultado correcto; de hecho, hay
otras combinaciones de rotores que dan IC levemente inferiores pero asimismo
correctas. Con todo, vamos en la dirección correcta
2) Con los datos anteriores, búsquese ahora la orientación de los anillos.
Dependiendo de dicha orientación, los rotores girarán en una u otra posición,
así que son un dato importante. En realidad, ni siquiera consideró el rotor
izquierdo (el más lento), ya que su movimiento no va a afectar el giro de otros
rotores. De modo que se cambia la orientación del rotor derecho (el más rápido),
y se escoge el que nos da un mensaje descifrado con el IC más alto. Una vez
hecho se fija esa posición del anillo para el rotor rápido, y se va moviendo el
anillo del rotor intermedio hasta que obtengamos el IC más alto.
3) Para obtener la disposición de los conectores se usa un procedimiento
similar. Con los datos conseguidos en los pasos 1 y 2, se escoge un par de
letras, se intercambian y se comprueba el resultado. Se escoge el mejor
resultado, se eligen otras dos letras a intercambiar, y así sucesivamente. Hay
aquí una diferencia importante: en vez de usar el IC, en esta fase se usa una
tabla de frecuencias de trigrafos. Es decir, se examinan los grupos de tres
letras y a partir de ahí se comprueba si dichos grupos coinciden en frecuencia
con lo que cabría esperar para un texto real.
Es decir, primero seleccionamos el orden y orientación de los rotores, después
el del rotor derecho y después el del rotor intermedio, usando en cada caso el
IC para irnos guiando en nuestra búsqueda. Para los conectores usamos algo
diferente al IC, pero la idea es la misma: imitar el lenguaje. Lo importante es
que lo hacemos a pasos: si hubiésemos probado todas las combinaciones de orden
de rotor y orientación de rotor y anillos, el número de tales combinaciones
hubiera sido inmenso. El truco es ir "troceando" y comprobando a cada paso.
Esto equivale a decir que la Enigma tiene una vulnerabilidad, ya que se supone
que no se puede hacer eso. Es decir, o probamos todas las posibles combinaciones
de la máquina, o nada. Claro que los aliados no usaron el IC para atacar los
mensajes Enigma. Deavours y Kruh en un tratado clásico sobre máquinas de cifra,
afirman que un ataque así fue considerado pero no puesto en práctica. En primer
lugar, la potencia de cálculo precisa no habría estado al alcance de los
criptoanalistas de Bletchley Park, quienes ni siquiera estaban al tanto de las
particularidades del IC (aunque los propios alemanes diseñaron un ordenador en
1941, el llamado Z3, que podría haberlo conseguido). En segundo lugar, el ataque
de Gillogly depende crucialmente de la longitud del texto cifrado.
Y aquí está el talón de aquiles del método de Gillogly. Tras una serie de
pruebas con diversos mensajes (no auténticos, sino creados y cifrados por él
mismo), pudo comprobar que el éxito en este tipo de ataques dependía de dos
factores: la longitud del texto y el número de conectores en el tablero. Textos
más largos y con pocos conectores daban probabilidades de éxito mayores. De
hecho, podemos comprobar el acierto de los alemanes en a) dotar a la Enigma de
un tablero de conexión para complicar el trabajo de los criptoanalistas, b)
aumentar el número de conectores durante la guerra y c) obligar a los operadores
de radio a transmitir mensajes cortos. De hecho, los mensajes de la Enigma
militar se mantenían en una longitud inferior a 300 letras, lo que hubiera
posibilitado a Gillogly obtener una solución el 80% por ciento de las veces ...
si no hubiera ningún conector enchufado en el tablero. Con diez conectores,
incluso un mensaje desusadamente largo (casi 1.500 letras) sólo hubiera sido
descifrado el 5% de las veces.
Sin embargo, el método de Gillogly es bueno y puede incluso mejorarse. Eso es lo
que hicieron dos expertos en Enigma llamados Geoff Sullivan y Frode Weierud. En
un artículo titulado "Breaking German Army Ciphers" (publicado en Cryptologia en
Junio de 2005), Sullivan y Weierud exploran y perfeccionan el método de
Gillogly. Su artículo resulta especialmente interesante porque los mensajes a
atacar no son simulaciones, sino mensajes auténticos de la Segunda Guerra
Mundial. Se trataba de un paquete de más de 500 mensajes guardados tras la
guerra por el Teniente Coronel Waldemar Werther. Tras su muerte, a finales de
los años 90, los mensajes acabaron en manos de ambos autores. No se sabe cómo
Werther (oficial de la Luftwaffe) consiguió dichos mensajes, que al descifrarlos
se comprobó que provenían de las SS o las Waffen-SS.
Sea como fuese, el caso es que medio millar de mensajes, fechados en 1941 y
1945, esperaban su descifrado. Su longitud, del orden de 250 letras, hacía
inviable un ataque como el diseñado por Gillogly, así que Sullivan y Weierud se
dispusieron a mejorarlo. El método que idaron lo denominan "algoritmo de escalar
la colina" (hill climbing technique). Se divide en dos partes: por un lado,
escoger la combinación de rotores y anillos, todo junto; por otro, ir probando
conectores.
El algoritmo de la colina está bastante bien explicado por
Weierud en
http://frode.home.cern.ch/frode/crypto/HillClimbEnigma.pdf. Yo voy a
resumírselo aquí. Para empezar, vamos a suponer que conocemos todas las
combinaciones posibles de anillos y rotores. Por supuesto, no las conocemos, así
que el algoritmo que vamos a describir aquí hay que probarlo para todas esas
combinaciones. Son muchas, pero luego calcularemos cuántas.
En lo que respecta a los conectores, la idea es que aunque no conozcamos qué
letras hay sido intercambiadas, sí podemos irnos aproximando. Se trata de ensayo
y error. Usemos, por ejemplo, el ejemplo que dan Sullivan y Weierud. Supongamos
que hemos acertado con los rotores y anillos, pero que no hemos conectado
ninguna letra en el tablero de conexiones. El resultado, junto con su Índice de
Coincidencia IC, es:
EJWNZ YHJWH MAZHJ JNDSK ESQMJ IRJFO HJMNZ UQLVY AHRSN OTRCX (IC=0.0385)
A continuación, intercambiemos las letras A y B en el tablero de conexiones.
Esto NO significa que podamos limitarnos a intercambiarlas en el texto cifrado
(esto es, no obtenemos un mensaje del tipo BJWNZ...), porque el tablero de
conexiones intercambia las letras ANTES de entrar en el sistema de rotores y
DESPUÉS de salir de los rotores. Es decir, el tablero de conexiones no es un
mero de sistema de sustitución monoalfabética (creo que en algún boletín
anterior, hace tiempo, dije que sí lo era, en cuyo caso pido disculpas por el
error). El resultado de descifrar el mensaje original, en este caso con las
letras A-B intercambiadas en el tablero de conexiones, es:
EJWNZ YHJWH MBZHJ JNMSK LRQWJ IRJFO HJMNZ UQLVY BHRSN OTRCX (IC=0.0385)
Como vemos, el IC no se ha movido, por lo que podemos concluir que el
intercambio A-B en el tablero de conexiones es incorrecto. Ahora probemos
intercambiado A-C, a ver qué pasa. Obtendremos un texto con un
IC de 0.038, lo que nos indica que seguimos sin ir bien. El mejor resultado lo
tenemos con el par de letras A-E, con un IC de 0.0407. Vamos mejorando.
A continuación, iremos probando con la siguiente letra, es decir, probemos a
intercambiar B con otra letra. El mejor resultado nos da un IC de 0.0502. Pero
para probar otra letra, en lugar de guiarnos por el IC, hacemos una comprobación
de trigramas. Como en el método de Gilligly, se trata de ver qué trigramas salen
en el texto descifrado y comprobar si coinciden con algunos de los trigramas más
habituales en el idioma alemán. Una vez hecho esto, se siguen comprobando letras
mediante una combinación de IC y trigramas para irnos guiando en el proceso. Con
paciencia y una caña, conseguiremos obtener las conexiones correctas en el
tablero con tan sólo unos pocos miles de pruebas, en lugar de probar todas y
cada una de las posibles conexiones en un método de "fuerza bruta".
Por supuesto, esto es válido si sabemos cómo estan orientados los anillos y
rotores. Así que, como no lo sabemos, habría que probar todas las combinaciones
de posición de rotores, orientación de rotores y orientación de anillos. Como
vimos al comienzo de este artículo, el número de posibilidades es muy alto:
18.534.946.560. Podemos reducir este número pensando en dos pequeños detalles.
En primer lugar, no es preciso probar todas las combinaciones del anillo del
rotor izquierdo (el lento), ya que eso no afecta al movimiento de ningún otro
rotor, como dijimos antes. De hecho, podemos incluso olvidarnos del anillo del
rotor intermedio. El motivo es que, aunque controla el acarreo del rotor
izquierdo, dicho acarreo solamente ocurre en una letra de cada 676, y nuestros
mensajes no tienen esa longitud. Así que vamos a suponer una orientación
cualquiera para el anillo del rotor intermedio. Si dicho anillo provoca un
acarreo del rotor izquierdo mientras se está cifrando el mensaje, pues mala
suerte; pero esperamos que eso sucederá raramente.
Es decir, vamos a considerar 60 modos posibles de ordenar los rotores; 26*26*26
orientaciones de los rotores; y 26 orientaciones del anillo del rotor derecho.
El número que nos da es de 27.418.560. Hay que probar esos 27 y pico millones de
posibilidades, y en cada una de ellas ir ensayando varios millares de posibles
conexiones del tablero, tal y como lo hemos explicado aquí. El número de
posibilidades sigue siendo muy alto, pero está al alcance de un buen ordenador.
Por lo menos, no tenemos que enfrentarnos a decenas de miles de millones de
posibles disposiciones en el sistema de rotores, o a un número astronómico de
posibles conexiones en el tablero.
El éxito del algoritmo de la colina es, según parece, digno de Bletchley Park.
Por supuesto, hubo mensajes más difíciles de romper que otros (por ejemplo, por
fallos en la recepción, algunos mensajes cifrados tienen letras incorrectas o
que faltan), pero a pesar de ello se consiguió descifrar casi todos los
mensajes; no solo esto, sino que se pudo profundizar en puntos tales como hasta
qué punto los operadores alemanes seguían el procedimiento correcto, o si la
máquina Enigma usada para cifrar los textos tenía algún fallo de funcionamiento.
Recomiendo al lector interesado que se descargue el artículo original
(disponible en
http://www.tandf.co.uk/journals/journal.asp?issn=0161-1194&linktype=offers)
porque resulta muy ilustrativo.
El "gran total" de Sullivan y Weierud: de 789 mensajes (o partes de mensajes)
procesados, solamente doce quedaron sin descifrar. Puede que la lista de
mensajes cabezotas se haya reducido aún más: véalo usted mismo en
http://frode.home.cern.ch/frode/crypto/bgac/index.html, que es la página
donde Weierud muestra todo lo relacionado con este esfuerzo. Aparte del interés
como curiosidad criptoanalítica, el descifrado de mensajes Enigma ha permitido a
los autores arrojar luz sobre un suceso oscuro de la Segunda Guerra Mundial: la
muerte del general Rabenau. No les contaré los detalles, sino que les dejaré
descubrirlos por su cuenta: http://cryptocellar.org/. También encontraron
información sobre los últimos días de los campos de exterminio, particularmente
el de Flossenbürg , en uno de los cuales encontraron la muerte diversas figuras
de la resistencia antinazi.
Pero si el descifrado de señales de la Enigma militar es, en pleno siglo XXI,
tarea ardua, imaginen ustedes atacar mensajes cifrados con la Enigma Naval.
Dicha máquina era más compleja (tenía más rotores, entre otras cosas), de forma
que utilizar las tácticas aquí descritas sería una tarea muchísimo más extensa.
Tanto, que solamente es posible utilizando gran cantidad de ordenadores. !Y así
está sucediendo! El aficionado a la criptología Stefan Krah, ha establecido un
proyecto de computación distribuida para descifrar tres mensajes cifrados con la
Enigma naval. Puesto que las necesidades informáticas exceden la capacidad de un
ordenador de mesa, Krah ha lanzado el proyecto M4 para que voluntarios de todo
el mundo cedan parte de su tiempo de ordenador no utilizado (al estilo de otros
proyectos como Seti@home).
Los mensajes, presentados por el historiador Ralph Erskine como reto a la
comunidad, fueron interceptadas en el Atlántico Norte hacia 1942, y hasta donde
se sabe nunca han sido descifrados
Hasta ahora, el resultado es alentador. Desde el inicio del proyecto M-4, el día
9 de enero, dos de los tres mensajes han caído ya, el primero el 20 de febrero y
el segundo el 7 de marzo. Pero el tercer mensaje ... todavía se resiste. Si
quiere usted unirse a este proyecto de computación distribuida, está a tiempo,
tiene toda la información y los ejecutables en la página del proyecto, junto con
instrucciones, lista de distribución, etc, en:
http://www.bytereef.org/m4_project.html.
A ver si uno de nuestros lectores da con la tecla y nos coronamos. Agradecería
que los lectores que se decidan a participar en este proyecto me enviasen una
nota indicándomelo, así podríamos saber con cuánta fuerza nos estamos metiendo
en este proyecto. !Ah! Y no se preocupen si alguien nos gana por la mano. Ralph
Erskine puede prometer y promete que tiene más mensajes de Enigma naval listos
para descifrar. Así que, si no saben qué hacer con sus ciclos de CPU inactivos,
esta es una perfecta oportunidad para utilizarlos.
LIBERTAD VIGILADA - Los "ojos y oídos" de Norteamérica
[Extraído del libro "Libertad Vigilada", de Nacho García Mostazo, con permiso
del autor]
Segunda parte, capítulo 5:
Además de la información interceptada gracias a la antena AN/FLR-13 instalada en
Rota, el NAVSECGRU también dirige las operaciones del Escuadrón de Vigilancia
Aérea de la Marina. Como mencionamos en capítulos anteriores, la Marina
norteamericana vigilaba el espacio aéreo de Gibraltar desde 1946, cuando
estableció su cuartel en la base de Port Lyautey, en lo que entonces era el
Marruecos francés. Este departamento fue asignado a la base de Rota en 1960,
desde donde sigue operando hoy en día, y pasó a denominarse oficialmente Segundo
Escuadrón de Vigilancia Aérea de la Flota (Fleet Air Reconnaissance Squadron
Two), aunque también se le denomina VQ-2 para abreviar. [1]
La Marina norteamericana tiene dos escuadrones de este tipo. El primero está en
la base de Whidbey Island, en el Estado de Washington, y también cuenta con
aviones en la base de Misawa, en Japón. Se formó en junio de 1955 y opera en el
área del Pacífico bajo el nombre de VQ-1. En 1997 contaba al menos con cuatro
aeronaves de espionaje EP-3E ARIES II, un modelo modificado en los años 90 sobre
la base del P-3C fabricado por Lockheed Martin. Los aviones fueron adaptados por
Raytheon para el espionaje, y es esta última compañía la que se ocupa del
mantenimiento de los mismos en sus hangares de Jacksonville, en Florida. Como
hemos mencionado, tanto Lockheed como la corporación Raytheon son empresas
permanentemente relacionadas con el operativo Sigint norteamericano.
El Segundo Escuadrón de Vigilancia Aérea tiene su centro de operaciones en la
base aeronaval de Rota, aunque también cuenta con la ayuda operativa de la
estación de Souda Bay, en Creta, para sus operaciones de vigilancia en el
Mediterráneo oriental. Oficialmente, el VQ-2 se fundó en diciembre de 1955,
aunque pasó a Rota cinco años después. En 1997, contaba al menos con tres
aviones EP-3E ARIES II. Estos aparatos sobrevuelan casi permanentemente el
Mediterráneo y sus países limítrofes, llegando a internarse en Oriente Próximo e
incluso hasta en China, donde uno de ellos fue capturado el 4 de enero de 2001,
causando un grave incidente diplomático que se resolvió tres meses después con
la devolución del avión por piezas, ya que las autoridades chinas lo desmontaron
para revisarlo detalladamente. [2]
A bordo de los aviones de espionaje de la Marina norteamericana vuelan unas
veinte personas, de las que cinco son tripulantes y el resto manejan las
antenas, radares, cámaras, micrófonos y ordenadores embarcados. Cuenta con
diferentes puestos para los operadores, entre los que destacan los dedicados a
la recolección de señales electrónicas y emisiones que se producen en le países
objetivo de la vigilancia. Incluso hay al menos dos consolas que se ocupan del
espionaje de las comunicaciones y de su análisis inmediato para transmitirlo, en
directo y fuertemente cifrado, a las bases en tierra, desde donde los analistas
del Grupo de Seguridad Naval dan un seguimiento permanente a cada misión. [3]
Igual que la base de Rota o el Grupo de Seguridad Naval, el VQ-2 también tiene
su propia página oficial en Internet, donde explica detalladamente su misión,
historia y galardones. Al inicio, una nota similar a la del NAVSECGRU informa al
usuario de que ha entrado en el área "desclasificada" del "sistema informático
del Gobierno de Estados Unidos", y se le aconseja leer la "política de
privacidad", donde también se le advierte de que será vigilado meintras esté
navegando por la misma. La definición que el VQ-2 de Rota hace de su propia
misión es un eufemismo, como en el caso del NAVSECGRU, pero es mucho más
patriótica: "Nuestros hombres y mujeres son los ojos y los oídos de la nación.
Facilitamos información de vital importancia para el combate a nuestras fuerzas:
!En todo lugar, en todo momento!" [4]
Decenas de menciones honoríficas y medallas jalonan el resumen histórico que el
propio VQ-2 publica en Internet. Obtuvo muchos premios por su trabajo en
conflictos donde estaba implicado directamente Estados Unidos, aunque también
hay varias menciones a crisis y acontecimientos que nada tienen que ver con la
intervención militar norteamericana, salvo para obtener inteligencia. Entre
otras, destacan las medallas obtenidas en la guerra contra Irak en 1990 y 1991,
así como las menciones a su labor entre 1992 y 1994, cuando el Escuadrón sumó
11.000 horas de vuelo sobre los Balcanes al servicio de la OTAN durante la
guerra de la antigua Yugoslavia llevando a cabo misiones de "reconocimiento" y
de "inteligencia". Con respecto a conflictos y crisis donde Estados Unidos no se
implicó activamente, el VQ-2 menciona el galardón recibido en 1970 por su
trabajo durante la "crisis jordana", o el de 1973 por sus "meritorios servicios"
en la guerra árabe-israelí. En marzo de 1997, el Escuadrón también hizo
operaciones de "reconocimiento electrónico sobre Albania durante la evacuación
del personal no militar (norteamericano)" a causa de la crisis social provocada
por la quiebra de un sistema piramidal fraudulento que garantizaba elevados
intereses a los ahorradores.
A cada nuevo militar que se incorpora a sus filas, el oficial al mando le
entrega una carpeta con las normas internas del cuerpo, pero en Internet hay al
menos un resumen de las mismas donde, por ejemplo, se exige un entrenamiento
permanente a todos los miembros del Escuadrón, ya que "debemos estar siempre
preparados para el combate". Asimismo, se afirma que "en el VQ-2 todos somos el
mismo equipo. Aunque trabajes en Administración, Operaciones, Mantenimiento,
Inteligencia, Entrenamiento, Guerra Electrónica o Seguridad, es imprescindible
recordar que operamos como el mismo equipo. No se tolerará la mentalidad del
'nosotros contra ellos'", porque "no existe el nosotros, sino el equipo",
afirma. En el mismo documento, el oficial al mando en 2002, A. W. Eddowes, dice
sentirse "honrado de tener la oportunidad de ser tu oficial" y recuerda que "no
toleraré ningún tipo de discriminación", ni el uso de drogas o alcohol, aspecto
sobre el cual dice tener "tolerancia cero", lo mismo que en casos de "acoso
sexual" a otros integrantes del Escuadrón. Por último, el oficial Eddowes
prohíbe a los miembros del VQ-2 que establezcan relaciones de carácter personal,
familiar o fraternal y afirma que, "como en el caso del acoso sexual, la
confraternización destruye nuestra moral, nuestra efectividad y, por último,
nuestro equipo".
La tensión que se desprende de las palabras del oficial al mando del VQ-2 sólo
se podría explicar al comprobar la elevada cifra de bajas del Escuadrón durante
la Guerra Fría. En 1958 murieron ocho tripulantes en una operación de espionaje
y otros 17 fallecieron derribados en Armenia. Un año después, 16 perecieron en
Turquía. En mayo de 1962, 26 hombre murieron en un accidente en Alemania. Una
misión en 1966 se cobróla vida de otros seis miembros del VQ-2. Doce analistas y
tripulantes fallecieron en acto de servicio durante los años 70, y otros siete
hombres murieron en 1987 durante una operación de vigilancia. Según un código no
escrito, cuando un militar muere durante un conflicto armado recibe todos los
honores, pero no ocurre igual en otro tipo de operaciones, y más aún cuando son
misiones de inteligencia. No obstante, los honores acaban llegando también para
los espías. En 1997 se celebró un homenaje en la sede central de la NSA para
recordar a los 17 miembros del VQ-2 derribados en Armenia casi cuatro décadas
atrás, en 1958. Una placa en Fort George Meade rinde honemaje a su memoria,
aunque para nosotros también se convierte en una nueva prueba que demuestra la
vinculación total entre la Agencia de Seguridad Nacional, responsable del
espionaje de las comunicaciones en todo el mundo, y el VQ-2 y el NAVSECGRU de
Rota, subordinados a esta misión. [5]
[1]. Página de Internet de los Veteranos del Grupo de Seguridad Naval. Op. cit.
[2]. Agencia Efe. "CHINA-EE.UU. / Incursión de avión espía causó grave crisis
entre China y EE.UU." Teletipo. Pekín, 3 de diciembre de 2001.
[3]. Información obtenida en la publicación electrónica Jane´s Information
Group, una de las mejores fuentes informativas en Intgernet sobre asuntos de
Defensa. Disponible en: http://www.janes.co.uk
[4]. Página en Internet del VQ-2 de Rota. Disponible en:
http://www.rota.navy.mil/vq2/
[5]. David Colley y Richard Kolb, "Facing Down the Soviets. Cold War on NATO´s
Southern Flank". Op. cit.
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