Taller de Criptografía - Informe 2

La seguridad de los protocolos criptográficos



 


Finales de 1997


"A pocos podremos convencer de que no es nada fácil inventar un método de escritura secreta que resista investigación cuidadosa. No obstante, puede afirmarse rotundamente que el ingenio humano es incapaz de preparar una clave que el ingenio humano no pueda resolver." Si Edgar Allan Poe viviese hoy, se sorprendería de lo bien que encajan sus palabras en el mundo en el que vivimos. De hecho, servirían de eslógan para criptógrafos y contra-criptógrafos, empeñados en descubrir lo que hacen los demás, y al mismo tiempo en que los demás no descubran lo que hacen ellos. La lucha de ingenios que llamamos criptografía ha experimentado un relanzamiento sin precedentes a causa de la existencia y popularización de la computación a todos los niveles. En la actualidad, la red Internet ha hecho que la criptografía salte de las manos de militares y espías a las de ese elemento extraño de la sociedad llamado "el ciudadano medio." ¿Cómo sirven los ordenadores a los criptógrafos de hoy?

A finales de 1977, los profesores del MIT Ronald L. Rivest, Adi Shamir y Leonard M. Adleman presentaron un nuevo sistema criptográfico en la revista Investigación y Ciencia (Octubre 1977, pp. 96-100) basado en números primos. Parecía que la criptografía, tal como se entendía hasta entonces, había muerto. Había aparecido un sistema nuevo, invulnerable a las pautas tradicionales (repetición de palabras, frecuencias...) e inatacable en la práctica. El autor del artículo, Martin Gardner, profetizaba: "Los computadores y la teoría de complejidad están llevando a la criptografía a una etapa excitante, que quizás adquiera tintes tristes. Repartidos por todo el mundo se encuentran hombres y mujeres de gran inteligencia, algunos de ellos geniales, que han dedicado sus vidas al dominio del análisis criptográfico moderno. A partir de la Segunda Guerra Mundial, incluso aquellas claves gubernamentales y militares que no son de uso único se han hecho tan difíciles de descifrar que el talento de estos expertos va siendo cada vez menos útil. Estas personas se encuentran ahora encima de trampillas a punto de abrirse y sumirlos en las profundidades del olvido."

Apenas si necesito mencionar que, veinte años después, las trampillas de Gardner siguen sin abrirse y esos expertos talentosos trabajan a todo ritmo. ¿Qué ha pasado? ¿Por qué no han sepultado los ordenadores y los nuevos sistemas criptográficos a esta buena gente? Existen dos motivos. El primero es que los ordenadores han aumentado enormemente de potencia y, lo que es más importante, se han extendido entre el público en general. En el artículo de Gardner, los autores RSA retaban a descifrar un mensaje que, según ellos, no podría descifrarse antes de 40.000 billones de años. En 1993 se logró hacer: requirió del orden de cien mil billones de instrucciones de ordenador, pero la colaboración de cientos de voluntarios por toda la Internet y el empleo de un método llamado criba múltiple cuadrático-polinómica permitió realizar la tarea en ... ocho meses. No hay motivo para alarmarse: el sistema RSA sigue siendo válido, sin más que elegir claves de longitud adecuada; pero es un buen recordatorio de que la palabra "humildad" es divisa obligada en este mundillo.

El segundo motivo para mantener a tanto criptógrafo en nómina es que cualquier sistema de cifrado de datos tiene puntos débiles, y los modernos (RSA, Diffie-Hellman, PGP, criptografía de curva elíptica...) no se escapan a esta regla. En ocasiones un sistema es mal implementado en la práctica, de modo que las posibles ventajas quedan anuladas por el mal hacer de un programador descuidado. Por ejemplo, casi todos los códigos actuales requieren cadenas de dígitos elegidos aleatoriamente, para lo cual se utilizan generadores de números aleatorios o pseudoaleatorios. Pero si dichos números no son realmente aleatorios, las claves así generadas son vulnerables. Un fallo de implementación de dicho tipo hizo que las comunicaciones "seguras" utilizando el navegador Netscape Navigator 1.1 pudiesen ser leídas en segundos: el sofisticado protocolo SSL resultaba en la práctica inútil porque utilizaba números no tan aleatorios. Cualquier programa de cifrado de datos es susceptible a mil y una fallas de seguridad.
 

Muy bien, elijamos un sistema de claves de gran longitud, contratemos programadores hábiles y revisemos el programa mil veces para eliminar cualquier fallo de implementación. ¿Podemos despedir ya a todos los criptógrafos? La respuesta sigue siendo no. Incluso un protocolo criptográfico bien implementado puede contener imperfecciones que permitan un ataque más eficiente que el de fuerza bruta. Sistemas tan popularizados como el Estándar de Cifrado de Datos (DES) estan basados en los viejos métodos de trasposición, sustitución y similares. Resulta muy difícil diseñar un algoritmo de cifrado de datos que resulte realmente robusto, esto es, que no pueda violentarse más que mediante un ataque de "fuerza bruta". Sutiles detalles pueden hacer, por ejemplo, que algunas claves sean más probables que otras, lo que permitiría montar un ataque estadístico con ciertas garantías de éxito sin necesidad de probar todas las posibles claves. Por ejemplo: el código de cifrado conocido como LOKI tiene una clave de 64 bits de longitud, lo que hace un número total de 2^64 claves, pero un criptoanálisis diferencial ha demostrado que solamente hace falta probar 2^56 claves.

La situación suele empeorar si el atacante tiene acceso a mensajes cifrados y/o sin cifrar, al igual que en los viejos tiempos de la criptografía sin ordenadores. Al mismo tiempo, la creciente potencia de los ordenadores hace cada vez más vulnerables los ataques de fuerza bruta contra sistemas con claves pequeñas. DES, utilizado desde los años setenta, es uno de los protocolos de cifrado más usados y a la vez más resistentes a ataques criptoanalíticos, pero su clave de sólo 56 bits la hace vulnerable a ataques de fuerza bruta.

El problema principal con un sistema de cifrado es que no hay manera de probar de antemano si es robusto y fiable. Como los castillos medievales, parecen fuertes desde fuera, pero sólo mediante repetidos ataques podrán exponer puntos débiles. Un protocolo descubierto hoy puede que sea fiable o puede que no, pero no se sabrá hasta que se haya "ganado los galones" ante la comunidad criptográfica. Desafortunadamente, algunos de los algoritmos más fiables han resultado no serlo tanto. En una época donde la seguridad puede ser la única barrera para convertir Internet en una verdadera Aldea Global, no se puede sortear este problema a la ligera. Veamos algunos de los algoritmos de cifrado más comunes hoy día, junto con sus posibles vulnerabilidades conocidas.


Existen otros tipos de algoritmos, pero estos son los más utilizados. Presentes o futuros, su validez está constantemente en entredicho. Mientras tanto, se aplica la regla de "valen mientras no se demuestre lo contrario." Y, por supuesto, no despida todavía a los criptógrafos, señor Gardner.

 


© Arturo Quirantes 2005.  Correo electrónico: aquiran arroba ugr.es


 

Vuelta a la sección Informes del Taller de Criptografía