¿Qué tan rápido se puede encontrar una colisión MD5?

5

Si tengo una sal de 16 bytes y 16 bytes de datos, ¿qué tan rápido se pueden encontrar otros 16 bytes de datos para que MD5 (sal + datos) == MD5 (sal + otros datos)?

No espero una respuesta precisa para el nanosegundo, solo una estimación como "unos segundos", "unas horas", "unas pocas civilizaciones".

    
pregunta Serge Profafilecebook 08.05.2014 - 17:22
fuente

1 respuesta

11

Lo que quieres no es una colisión sino una segunda preimagen .

Una colisión es: encuentra dos mensajes distintos m y m ' que contienen el mismo valor.

Una segunda imagen previa es: dado un mensaje m , busque un mensaje distinto m ' de manera que ambos mensajes tengan el mismo valor.

Las segundas preimágenes son más difíciles porque el atacante no puede elegir ambos mensajes a voluntad. MD5 está muy roto contra las colisiones (las colisiones se pueden generar en menos de un segundo) pero no contra las segundas preimágenes. Para eso, el ataque más conocido es un ataque genérico de preimagen que es solo teórico, ya que ha costado 2 123.4 , es decir, mucho más que lo que se puede hacer en la práctica.

Entonces, la respuesta en bruto a su pregunta específica es: no se puede hacer (con la tecnología existente y los ataques conocidos en MD5).

(Estoy aquí hablando solo sobre encontrar una segunda imagen previa en MD5, no sobre la seguridad de usar MD5 (datos de sal +) en cualquier contexto específico, se sepa o no "sal" y "datos". Sospecho que cualquier persona que use MD5 (sal + datos) en realidad quiere una función de hash de contraseña, o HMAC).

    
respondido por el Thomas Pornin 08.05.2014 - 17:36
fuente

Lea otras preguntas en las etiquetas