¿Los archivos diferentes siempre tienen diferentes códigos hash MD5 o SHA1?

2

Mi pregunta es si los archivos diferentes siempre llevan a códigos hash MDA o SHA1 diferentes.

    
pregunta John 03.10.2018 - 00:30
fuente

4 respuestas

9

La respuesta de @HeterHarmann es completamente correcta, pero para agregarlo: los algoritmos hash seguros (que MD5 pretendía ser y que es literalmente lo que significa "SHA") son supuestos supuestos es altamente resistente a las colisiones donde cualquiera de las dos entradas tiene la misma salida. Si bien tales colisiones siempre existirán para cualquier algoritmo que pueda tomar una entrada más larga (en términos de bits de datos arbitrarios) que su salida, se supone que encontrarlos es casi imposible. Idealmente, hacerlo requiere un ataque de fuerza bruta en un espacio de búsqueda demasiado grande, incluso cuando se utiliza un ataque de cumpleaños . En otras palabras, si bien es cierto que los diferentes archivos no pueden siempre tienen diferentes resúmenes de hash, en la práctica se supone que es posible actuar como lo hacen ellos.

SHA1 está en desuso porque se ha demostrado que es vulnerable a un ataque de colisión, como muestra el enlace de Peter. MD5 es aún peor, sin embargo; se ha demostrado que es vulnerable a un ataque de colisión elegido-prefijo , donde dos entradas distintas pueden tener sufijos anexados para hacer que tengan el mismo resumen de hash. Esto se demostró como una forma de romper las protecciones que ofrecen las firmas criptográficas (uno de los usos clave de los hashes seguros) mediante la creación de certificados X.509 en conflicto, lo que permite a un atacante generar un certificado fraudulento (con su propia clave pública) que tiene el el mismo hash y, por lo tanto, la misma firma que un certificado válido firmado por una autoridad de certificados de confianza. El malware Flame utilizó un certificado fraudulento supuestamente firmado por Microsoft, que era posible porque Microsoft tenía una CA que aún estaba emisión de certificados firmados por MD5.

    
respondido por el CBHacking 03.10.2018 - 01:07
fuente
6

No, no lo hacen. Si lo piensas bien, la salida de sha1 tiene 160 bits. Hay más de 2 ^ 160 archivos posibles, por lo tanto, debe haber múltiples (infinitos) archivos potenciales que tengan los mismos hashes. El problema es encontrarlos.

Aquí hay dos archivos que tienen el mismo sha1.

    
respondido por el Peter Harmann 03.10.2018 - 00:31
fuente
1

En teoría, no lo hacen, y esto se conoce como el " Principio de paloma ". Sin embargo, la probabilidad de tener 2 hashes idénticos es muy pequeña. El principio de Pigeonhole para hashes en breve:

  • Un hash tiene una longitud de bit específica, digamos a . Para SHA256, a = 256 .
  • Como resultado, puede haber 2 ^ a valores hash únicos. Para SHA256, esto es 2 ^ 256 (2 elevado a 256) valores hash únicos.
  • Si el tamaño del archivo es b bits, entonces podemos tener 2 ^ b archivos únicos.
  • El tamaño de un archivo es mucho mayor que a (de lo contrario no necesitaríamos hashes). Esto solo puede suceder si diferentes archivos se asignan al mismo hash.

Sin embargo, es muy difícil para alguien producir un segundo archivo con el mismo hash. Esto se debe a las propiedades del algoritmo de hash.

    
respondido por el papajony 23.10.2018 - 12:40
fuente
0

No siempre. Además del pozo anterior que explica las respuestas, Google tiene un anuncio para la colisión del algoritmo SHA-1: (Google) Anunciando la primera colisión SHA1 .

Por otra parte, la colisión de MD5 se anunció en 2004 a partir de Cryptosense .

    
respondido por el Pilfility 23.10.2018 - 13:21
fuente

Lea otras preguntas en las etiquetas