hash – ¿Por qué se considera que SHA-1 no funciona?

Pregunta:

¿Existe un par conocido de cadenas de bits distintas (A, B) tal que SHA-1 (A) == SHA-1 (B)?

Si la respuesta es no, ¿cómo se puede considerar que SHA-1 está roto?

Respuesta:

Llamamos a un primitivo roto, si hay algún ataque más rápido que la fuerza bruta / lo que esperamos de un primitivo ideal. Quebrado no significa que haya ataques prácticos.

Incluso cuando no hubo colisiones conocidas en SHA-1, todavía llamamos a la resistencia a colisiones de SHA-1 rota, porque hay un ataque teórico que puede encontrar colisiones usando menos de $ 2 ^ {80} $ llamadas a SHA-1.

En particular, una función hash de $ n $ bit debe tener al menos las siguientes propiedades:

  1. $ 2 ^ n $ resistencia previa a la imagen (tanto la primera como la segunda imagen previa)
    El ataque genérico es simplemente probar entradas hasta que una se ajuste al hash.
  2. $ 2 ^ {n / 2} $ resistencia a colisiones
    El ataque genérico está generando entradas y comparando sus hashes entre sí. El problema del cumpleaños le dice que una vez que tenga alrededor de $ 2 ^ {n / 2} $ valores diferentes, es probable que dos de ellos sean iguales. En el caso de SHA-1, encontrar una colisión requiere alrededor de $ 2 ^ {80} $ operaciones.

Una función que se rompe a menudo solo significa que debemos comenzar a migrar a otras funciones más fuertes, y no que aún exista un peligro práctico. Los ataques solo se vuelven más fuertes, por lo que es una buena idea considerar alternativas una vez que comiencen a aparecer las primeras grietas.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım