2011-07-07 196 views
5

Quería entender cómo se ha roto la función de hash SHA0. Entiendo que al utilizar el principio del cumpleaños/principio de retención de pichón, se encontraron colisiones hash. http://www.mail-archive.com/cryptography%40metzdowd.com/msg02554.html contiene un mensaje de ejemplo.¿Cómo se rompió SHA-0? - ¿Cuál es el significado de un simple puñado de colisiones hash?

Lo que tengo problemas para encontrar/entender: ¿Esto significa que hay una manera matemática oportuna de producir SIEMPRE una colisión hash?

¿Puedo eventualmente encontrar un m2 para un m1 dado tal que m1! = M2, sha (m1) == sha (m2) o solo es posible en un subconjunto de posibles mensajes? Reformulado: ¿Están las posibilidades de que mi contraseña tenga otro mensaje para una colisión garantizada?

¿Cuál es la importancia de encontrar 2 mensajes aleatorios largos, como en el enlace anterior, que tienen el mismo valor hash? ¿Por qué tuvieron que examinar mensajes largos aleatorios para detectar una colisión en lugar de calcular una colisión para un mensaje práctico como "El perro marrón saltó sobre el zorro"?

Un par de ejemplos de colisiones hash no parecen tan importantes como un método oportuno para generar una colisión para cualquier mensaje, pero todas las publicaciones hablan de la primera.

¡Gracias por cualquier ayuda/su tiempo! He leído muchas publicaciones/artículos, pero no puedo entender mi confusión. Sospecho que tengo las mismas preguntas para otras funciones hash rotas como MD5.

EDIT:

The paper (explaining improved method for finding collisions) referenced in the answer

+0

Ese correo no es más que una prueba de concepto de un ataque a una versión anterior de SHA que ha sido desaprobada debido a varias debilidades conocidas que permiten un ataque que es mucho más fácil que una búsqueda exhaustiva. Dicho ataque tomó 80,000 horas de CPU. Debe tener en cuenta que el mismo ataque no funcionará para la implementación común de SHA-1. Y, para responder a su pregunta: Sí, esto significa que, en principio, se puede encontrar una colisión para cada entrada, dado un conjunto de estaciones de trabajo potentes, pero _sólo_ con SHA0. – Damon

+0

(generalmente siempre se puede encontrar una colisión para _cada_ entrada en _ cada_ hash, dado un tiempo/recursos infinitos, la única diferencia notable aquí es que este ataque particular en este hash en particular funciona con recursos comparativamente moderados) – Damon

+0

¡Gracias, eso tiene sentido! – dsf

Respuesta

8

De Wikipedia:

En febrero de 2005, un ataque de Xiaoyun Wang, Yiqun Lisa Yin y Hongbo Yu se anunció que podría encontrar colisiones en SHA-0 en 2^39 operaciones.

Este tipo de complejidad es completamente insuficiente para fines criptográficos con la potencia informática actualmente disponible. Es garantiza el descubrimiento de una colisión para cualquier mensaje en un tiempo muy razonable.

+0

Gracias por hacer referencia a esto, echaré un vistazo a su artículo. – dsf

+0

"Garantiza el descubrimiento de una colisión para cualquier mensaje ..." Creo que esto está mal. El documento describe un "ataque de colisión". Esto significa que pueden encontrar algunos m1, m2 tales que h (m1) = h (m2) en 2^39 operaciones. Esto no significa que para NINGÚN m1 puedan encontrar m2 tal que h (m1) = h (m2). Ese sería un tipo especial de "ataque de colisión de prefijo elegido". – tba

Cuestiones relacionadas