¿Cuáles son las implicaciones de revertir hashes?

0

Hoy me fue postulado que

  1. sha256 tiene un dominio lo suficientemente grande como para nunca encontrar una colisión y
  2. que debido a que es un dominio tan grande y dado que se creó una función inversa para él, haría que la compresión actual sea obsoleta. Los archivos grandes se pueden crear invirtiendo un sha256.

Entiendo que los hash son una forma, funciones deterministas, pero si hubiera un hash reversible, ¿esto sería cierto o el potencial de colisión es realmente grande para crear un hash único?     

pregunta virus.cmd 18.01.2017 - 01:08
fuente

2 respuestas

5

Los hashes reversibles no son compresión

Incluso los hashes que podemos revertir no se pueden usar como compresión. Suponiendo que podríamos revertir sha256 no haría que la compresión actual se vuelva obsoleta, porque hay infinitos archivos grandes, pero infinitamente muchos valores de sha256 (2 ^ 256), por lo que infinitos archivos grandes tendrán el mismo hash sha256, esto se conoce como principio de casillero . Si invierte el hash, obtendrá uno o todos de los posibles archivos grandes, pero no puede garantizar o esperar de manera realista que este sea el exacto que comprimió.

Para un ejemplo trivial, si desea comprimir archivos de 33 bytes (264 bits), hay 2 ^ 256 hashes sha256 diferentes, y 2 ^ 264 posibles archivos diferentes de 33 bytes, en promedio cada 2 ^ 8 Los archivos tendrán el mismo hash sha256. Si bien es improbable que accidentalmente sufras una colisión (posibilidad 1/2 ^ 256), también es poco probable que en un "revés" obtengas accidentalmente el mismo archivo que comprimiste (posibilidad 1/2 ^ 8). En la criptografía, decir "a prueba de colisiones" no significa que no haya colisiones (por supuesto que hay, debe haber) sino que las colisiones son difíciles / lentas de encontrar y manipular.

    
respondido por el Peteris 18.01.2017 - 07:37
fuente
1

No tengo la base matemática para explicar esto correctamente, pero ningún hash de tamaño fijo es lo suficientemente grande como para proporcionar una salida única para cada entrada. Por lo tanto, habría colisiones y sería imposible saber qué entrada se proporcionó inicialmente.

Pero incluso si ignoramos eso, la propiedad del gran espacio de salida y la propiedad de que no se puede revertir no está relacionada. Incluso MD5 no se puede revertir matemáticamente. Es solo que MD5 es pequeño y lo suficientemente rápido como para que podamos construir diccionarios inversos para asignar hashes a entradas potenciales. También puedes hacer esto con SHA1 o SHA256.

La parte que hace que no sea práctico usar esto para la compresión es que aún tendrías que almacenar la entrada en algún lugar para hacer la reversión, que no tiene el punto.

    
respondido por el Mike Caron 18.01.2017 - 07:20
fuente

Lea otras preguntas en las etiquetas