1 mar 2009

Concurso SHA-3: primera ronda

El lector veterano recordará cómo, en diversas ocasiones, hablamos acerca de las funciones resumen, o hash. Sus aplicaciones en firma digital hacen que en ocasiones resulte incluso más relevantes que los algoritmos de cifrado. Sin embargo, habitualmente han recibido poca publicidad, como si se tratase de algo accesorio y de segunda fila.

Nada más lejos de la realidad. En el último boletín, por ejemplo, mostramos cómo pueden ser usadas para efectuar registros en ordenadores, con lo que ello significa desde el punto de vista legal ("Hashing y búsquedas razonables", Boletín ENIGMA 65). El pasado Diciembre se hizo público en el Chaos Communication Congress cómo se pueden aprovechar las debilidades del algoritmo MD5 para falsificar certificados digitales, noticia de la que daremos buena cuenta en otro momento (aunque los impacientes pueden ir abriendo boca con el buen hacer de los chicos de Security by Default, en español).

El propio algoritmo SHA-1 se halla en entredicho, debido a algunos ataques recientes. De hecho, el equipo del Taller de Criptografía participa desde sus inicios en el "SHA-1 Challenge", un reto de computación distribuida para encontrar colisiones en dicho algoritmo. Está patrocinado por la Universidad Técnica de Graz, y en este momento nuestro equipo se encuentra en una meritoria 68ª posición.
Quienes deseen apuntarse, pueden hacerlo siguiendo las instrucciones disponibles en http://www.cripto.es/enigma/boletin_enigma_54.htm#2, y no quiero tener que pasar lista, ejem.

Estos y otros problemas han hecho que los expertos del ramo sugiriesen la necesidad de jubilar no sólo al algoritmo de hash MD5 sino al más robusto SHA-1. La idea es que SHA-1 es todavía adecuado, pero más vale prevenir (V. Boletines ENIGMA 31, 35, 50 y 54 para más información sobre SHA-1). Y dicho y hecho, el NIST (instituto de estándares de EEUU) ha establecido un concurso para seleccionar una nueva función hash, del mismo modo que en su momento hizo para sustituir al venerable DES por el reluciente Advanced Encryption Standard (AES). De momento, el nombre que se baraja para el ganador es SHA-3.

Como ya informamos en su momento (Boletín ENIGMA 56), el proceso es largo. Los diversos algoritmos han de ser seleccionados, evaluados y estudiados a fondo. No se trata tan sólo de cuál es el que tiene más bits, sino que se deben tener en cuenta muchas propiedades: resistencia a colisiones, rapidez tanto en hardware como en software, uso de memoria y muchos otros. Condición sine qua non es la de ser público y perfectamente conocido, lo que incluye el algoritmo completo, vectores de prueba y todas las especificaciones necesarias. Luz y taquígrafos, en suma.

La fase preliminar del concurso (presentación de candidatos) se cerró el 30 de Octubre de 2008. Ha sido todo un acontecimiento: nada menos que 64 funciones candidatas. No tenemos información acerca de ocho de ellas, lo que resulta curioso considerando que es un concurso abierto y público.

Para refrescar conceptos, sean M el mensaje, H la función y h=H(M) el valor de dicha función al aplicarlo sobre H. Las propiedades que han de cumplir las funciones hash son esencialmente las siguientes:

1) Dado un valor h, ha de ser inviable hallar el mensaje M que cumpla que h=H(M)

2) Dado un valor M, ha de ser inviable hallar otro mensaje M' que cumpla que H(M)=H(M')

3) Dados dos valores M, M', ha de ser inviable que H(M)=H(M')

Cuando no se cumple la propiedad 1, se dice que tenemos un ataque de PREIMAGEN (o más correctamente de PRIMERA PREIMAGEN). La violación de la condición 2 se denomina ataque de SEGUNDA PREIMAGEN, y la ruptura de la condición 3 se denomina COLISIÓN (o más correctamente, COLISIÓN FUERTE). Cuando un atacante de la condición 2 conoce el mensaje M además del hash m, se denomina COLISIÓN DÉBIL. Como aclaración a mis lectores, la violación de la condición 3 es lo que En el Boletín ENIGMA 31 ("SHA-1 y las colisiones de cumpleaños", Boletín ENIGMA 31).

Varias de las 64 funciones hash presentadas a concurso han caído ya. Ocho de ellas han desaparecido por motivos desconocidos, y otras cinco han sido retiradas antes de pasar a la "primera ronda." De las 51 restantes, más de la mitad presentan algún tipo de vulnerabilidad; n diez de ellas, sus propios diseñadores han reconocido su vulnerabilidad (tres eran susceptibles de ataques de segunda preimagen, y las otras siete presentaban colisiones). Eso no significa que todas esas funciones hayan de ser descartadas, ya que algunas de dichas vulnerabilidades son poco relevantes; por otro lado, al menos una docena son graves, ya que se conocen ataques prácticos contra ellas.

En cualquier caso, cada fallo en las funciones hash será observado con lupa, ya que los ataques contra funciones criptográficas solamente empeoran. Si hoy hay un ataque sin consecuencias, mañana puede aparecer otro más grave. Hace unos días se descubrió que al menos dos de esas funciones son susceptibles de errores por desbordamiento de búfer (buffer oveflow). Uno de ellos, llamado MD6, ha sido desarrollado por un equipo dirigido por nada menos que Ron Rivest (sí, el R de RSA). El algoritmo Skein, de nuestro estimado Bruce Schneier, fue revisado para corregir dos pequeños fallos. Lo que demuestra que ni los mejores en este campo se las deben tener todas consigo.

Además de la fortaleza contra colisiones y preimágenes, los algoritmos serán considerados en función de otros parámetros como la facilidad de uso, cantidad de memoria útil y rapidez entre otros. Según una clasificación reciente, uno de los más rápidos en software es Blue Midnight Wish, literalmente traducible como "Deseo Azul de Medianoche" (¿quién dijo que los criptógrafos no eran poéticos?), cuyas iniciales hacen honor a su rapidez: BMW. El algoritmo de Schneier, Skein, es asimismo uno de los más veloces, junto a otros bichos con nombre tales como Edon-R o EnRUPT; en el otro extremo, Rivest y su MD6 alcanzan aquí
resultados más bien pobres.

En estos momentos, los algoritmos seleccionados para la primera ronda están siendo analizados en la "First SHA-3 Conference" celebrada en Leuwen, Bélgica dentro del congreso Fast Software Encryption. A partir de ahí, se abre un período de aproximadamente un año durante el cual todos los criptoanalistas del mundo (de hecho, cualquier persona) puede enviar sus comentarios. Será lo que Schneier denomina un "derby de demolición", donde los mejores irán destacando y los peores serán eliminados. Pero no es un concurso estilo "Los Inmortales", donde sólo puede quedar uno. La idea es ir adelgazando la lista hasta unos 10-20 candidatos. Sólo puede haber una función SHA-3, pero seguro que las finalistas serán también consideradas por la industria. Algo así como Operación Triunfo, donde el ganador no es el único que vende discos.

Fuente: Boletín ENIGMA

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!