¿Por qué es importante la propiedad de difusión en las funciones hash?

4

Siempre he escuchado eso

  

Un cambio en solo un bit del texto original cambiará la mitad de   los bits de su hash.

Creo que esta propiedad se llama propiedad de difusión .

Sin embargo, me pregunto por qué la propiedad de difusión es tan importante en las funciones de hash.

Entiendo que para los algoritmos de cifrado, esta es una propiedad necesaria. Sin él, podría llevarse a cabo un ataque basado en estadísticas de idioma.

Sin embargo, las funciones de hash son unidireccionales, lo que significa que no se puede obtener el texto original del hash. ¿Por qué deberían las funciones hash exhibir la propiedad de difusión entonces?

Actualización 1:
Dado que podría usar las funciones de hashing para ocultar o para garantizar la integridad de un documento, creo que es una buena idea separar ambos aspectos.

Si lo estamos utilizando para ocultar información, como la contraseña, esta propiedad es necesaria. Mire la respuesta de Lucas Kauffman .

Pero si está utilizando funciones hash para garantizar la integridad de un documento. ¿Sigue siendo una propiedad necesaria entonces?

    
pregunta eversor 05.05.2012 - 20:30
fuente

2 respuestas

4

Es por el mismo motivo, sugiero que tengas una tabla con hashes, y descubres que hay un hash (A) que es casi lo mismo que un hash que intentas romper (B). Si hay aleatorización, entonces no tienes nada; de lo contrario, sabrás que el hash que intentas romper es similar al texto simple del hash A. Así que esto facilitaría un ataque de fuerza bruta, ya que sabes que debe ser un hash de algo cercano a el texto en claro de A.

Agregue a esto que podría tener 10 hashes que parecen similares a B, puede comenzar a encontrar un patrón en su forma de texto simple y reducir aún más su brecha de fuerza bruta.

    
respondido por el Lucas Kauffman 05.05.2012 - 22:15
fuente
4

Las funciones de hash se usan en muchos lugares, y algunas de ellas requieren más que la resistencia a la colisión y la preimagen.

Algunos ejemplos:

  • Como una función pseudoaleatoria en la derivación clave. Obviamente, la clave debe ser lo más aleatoria posible.
  • Como un relleno en RSA. Las pruebas de seguridad se basan en el modelo de Oracle aleatorio. Así que queremos que nuestras funciones hash concretas se acerquen lo más posible a un oráculo aleatorio.
  • Los hash truncados aún deberían tener las mismas propiedades de seguridad que un hash completo (aparte de las debilidades inherentes de una salida de hash más corta).
  • Las funciones de hash se pueden usar en un modo CTR como la construcción para crear un cifrado de flujo. Obviamente, esto requiere una salida imparcial y de aspecto aleatorio
  • Las funciones de hash se pueden usar como PRNG, requisitos similares a los de los cifrados de flujo
respondido por el CodesInChaos 05.05.2012 - 23:14
fuente

Lea otras preguntas en las etiquetas