1 dic 2007

Funciones hash: el nuevo concurso

Como sabrán nuestros lectores, las funciones hash que se
utilizan actualmente en aplicaciones diversas adolecen de diversos
problemas. Para quien no lo recuerde, una función hash toma un mensaje
o texto, y lo comprime en una ristra de pocos bits. De ese modo, el
mensaje queda representado por dicha ristra (hash) para, por ejemplo,
poder efectuar firmas digitales o poder comprobar si el mensaje ha sido
alterado de alguna forma.

Sin embargo, no todo es llegar y besar el santo. Se supone que
las funciones hash son unidireccionales: a partir del mensaje podemos
calcular el hash, pero no al revés. Por eso, en muchas aplicaciones en
las que se requiere una contraseña de acceso, se usan el hash. Es decir,
yo escribo la contraseña, ésta se transforma mediante la función hash, y
es el hash el que se transmite al sistema. Así nadie puede obtener la
contraseña husmeando el tráfico o hackeando los archivos del sistema.

El problema es que las funciones hash actuales están siendo cada
vez más cuestionadas. Un problema tiene que ver con el tamaño. MD5, un
algoritmo muy usado, genera un hash de 128 bits, con lo que obtener la
contraseña a partir del hash resultaría muy difícil. Una opción sería
generar múltiples contraseñas y computar su función hash, con el fin de
obtener una gran tabla de correspondencias. Hay tablas de ese tipo por
Internet (no completas, por supuesto). Hace pocos días alguien encontró
una forma de acelerar el proceso: !usar Google! Por lo visto, el
programa Wordpress guarda el hash MD5 de las contraseñas, así que ¿por
qué un googlear un poco? Dicho y hecho: pueden leer los detalles.
Por supuesto, hay una forma de evitar este fallo, y se conoce desde los años 70,
pero cuando no se presta atención al pasado, a veces pasa lo que pasa.

Incluso en las aplicaciones mejor codificadas, tenemos la
limitación de que las funciones más habituales, como MD5 o SHA-1, tienen
fallos criptoanalíticos. De SHA-1, por ejemplo, hemos hablado aquí en
diversas ocasiones, así que no me repetiré. Baste indicar que las
funciones hash están pasando por una crisis similar a la del algoritmo
de cifrado simétrido DES: cada vez están siendo más cuestionadas, y
aunque aún aguantan ya va siendo hora de planificar para el futuro.

Dicho y hecho. A finales de los años 90, el NIST (instituto de
patrones norteamericano) lanzó un concurso para reemplazar al venerable
algoritmo de cifra simétrica DES, dando como resultado el que ahora
conocemos como AES (Advanced Encryption Standard). De forma similar, han
llegado a la conclusión de que los actuales estándares de hash,
denominados SHA-1 y SHA-2 (este último, en realidad, es una familia de
funciones basadas en SHA-1 pero con hashes de mayor longitud), y la
lanzado un concurso de ideas al que ha denominado Cryptographic Hash
Según el NIST, los pasos iniciales se dieron en 2005, tras el descubrimiento de una
vulnerabilidad en SHA-1 (ver "SHA-1 y las colisiones de cumpleaños", en
el Boletín ENIGMA nº 31), y se espera completar el proyecto antes del
final de 2012.

En efecto, las cosas de palacio van despacio, pero en estos
temas, apresurarse puede ser fatal, y si queremos que salga algo bien
hecho hemos de dejar pasar su tiempo (el proceso de selección del AES
llevó cerca de cuatro años). De hecho, la competición ya ha comenzado.
El pasado día 2 de noviembre, el Federal Register (equivalente
usamericano del Boletín Oficial del Estado) publicó el "Anuncio de
Peticiones de Candidaturas para una Nueva Familia de Algoritmos
Hash Cryptográficos (SHA-3)". La noticia incluye los requisitos que se
exigirán a la nueva función, como el establecimiento de un parámetro
variable para poder "ajustar" la fortaleza del algoritmo (con lo que tendremos
toda una familia de funciones), evaluaciones de seguridad, eficiencia
computacional, etc.

Además, todos los candidatos serán subidos a la dirección oficial del
proyecto
, lo que personalmente considero un magnífico ejercicio de transparencia.

La presentación de candidaturas se cerrará el 31 de Octubre de
2008. Es decir, quienes queráis presentar un candidato, tenéis un año
entero para pensároslo. Os incluyo las palabras de Bruce Schneier en el
artículo que escribió al respecto en su blog el pasado mes de Febrero
:

"La competición sobre AES fue de lo más divertido que he tenido
que ver en criptografía. Piense en ello como si fuera un gigantesco
derby de demolición criptográfica: un puñado de nosotros ponemos lo
mejor que hemos hecho en el ring, y luego nos liamos los unos contra los
otros hasta que solamente quede uno. Es mucho más académico y
estructurado que eso, pero el proceso estimuló un montón de
investigación en diseño y criptoanálisis de funciones de cifrado en
bloque. Personalmente, yo aprendí un montón sobre estos temas en la
competición AES, y como comunidad nos hemos beneficiado enormemente"

Fuente:
Boletín Enigma de Arturo Quirantes 2007 (c)

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!