Una entrada Dos Hashes

1

Supongamos que tengo una contraseña x y dos funciones hash diferentes h1 y h2 . Luego puedo calcular el hash y1 = h1(x) y y2 = h2(x) .

  1. ¿Hay algún tipo de vulnerabilidad en este caso? Más específicamente, ¿es posible obtener y1 de y2 y viceversa? ¿Hay algo más que deba tener en cuenta?

Esto es más una pregunta teórica, que es en parte la razón por la cual no estoy especificando ninguna función hash específica. Otra forma de formular esta pregunta es la siguiente.

  1. ¿La seguridad en este caso específico se reduce a la selección "correcta" de los pares de funciones hash? ¿O no importa?

  2. Ahora, reemplace "hash" en esta pregunta con "función de derivación de clave". ¿Hay alguna diferencia?

pregunta nehcsivart 13.12.2015 - 09:43
fuente

1 respuesta

4
  

¿Hay algún tipo de vulnerabilidad en este caso? Más específicamente, ¿es posible obtener y1 de y2 y viceversa? ¿Hay algo más que deba tener en cuenta?

Puedes construir un par de funciones hash seguras donde y1 se pueda calcular a partir de y2 y viceversa:

  • función # 1: SHA-256
  • función # 2: SHA-256 con los dos primeros bits intercambiados

Ambas funciones son obviamente diferentes y ambas son seguras, ya que no se puede obtener la entrada de la salida ni los ataques de colisión. Pero, obviamente, puede calcular el resultado de la función # 1 si conoce el resultado de la función # 2 y viceversa.

  

¿La seguridad en este caso específico se reduce a la selección "correcta" de los pares de funciones hash? ¿O no importa?

Creo que con funciones hash basadas en ideas completamente diferentes, hay muchas posibilidades de que no encuentre una dependencia entre las salidas. Pero, por otro lado, se encuentran muchos problemas aparentemente no relacionados en matemáticas al final. Por lo tanto, creo que necesitarías probar la independencia para cada par de algoritmos hash.

  

Ahora, reemplace "hash" en esta pregunta con "función de derivación clave". ¿Hay alguna diferencia?

Puedes crear un KDF con salidas dependientes de la misma manera que he creado las dos funciones hash dependientes. Además, los KDF a menudo se basan en funciones hash, por lo que sugeriría que se puede usar la misma argumentación que he usado para los hashes.

    
respondido por el Steffen Ullrich 13.12.2015 - 10:13
fuente

Lea otras preguntas en las etiquetas