Hace tiempo que no paso por aquí.
He estado leyendo la documentación que se ofrece desde este portal oficial de eMule y quisiera compartir con vosotros algunas definiciones técnicas que creo no son correctas.
En la Guía sobre redes se indica lo siguiente:
Quote
Identificación de ficheros
Todos los ficheros tienen un valor de hash. Este hash es una combinación de números y letras que son capaces de identificar de forma única a un fichero. Un fichero puede tener múltiples nombres, pero esto no cambia su valor de hash. Esto permite que cada usuario encuentre todas las fuentes para un fichero en particular sin importar que alguien le haya cambiado el nombre al mismo.
Además, los ficheros se separan en partes de 9,28 MB. Cada parte a su vez también tiene un valor de hash. Por ejemplo un fichero de 600 MB contiene 65 partes, entonces a cada una de las partes se le asigna un valor de hash, y el hash del fichero se obtiene a partir de los hash de estas partes, para de esta forma poder compartir el fichero en las redes.
Un HASH de archivo es el resultado de aplicar un algoritmo de resumen al contenido del mismo. De modo que si un solo bit fuera modificado en un archivo, su algoritmo de resumen resultante sería distinto. Hasta aquí todo correcto.
Ahora bien, afirmar que un HASH de archivo es capaz de "identificar de forma única un fichero" me temo que es dar un salto a la fe, sobre todo cuando esa identificación se hace de forma remota y sin tener delante el contenido para poder contrastar que efectivamente su HASH resultante es el anunciado en una fuente remota P2P.
Os pongo el siguiente ejemplo. La forma más simple de un algoritmo de resumen son las SIGLAS. Por ejemplo, si aplicamos a "Partido Popular" el algoritmo de resumen de la siglas obtenemos PP. Pero del mismo modo si a "Pedro Pérez" le aplicamos el mismo cálculo obtendremos esas mismas siglas PP. De aquí podemos extraer un principio básico de los algoritmos de resumen. Un resumen (HASH) siempre podrá hacer referencia a más de un contenido (colisiones). Creo que en estos momentos muchos se están tirando la mano a la cabeza ¿verdad?
El error es confundir cuál es la principal finalidad de un HASH. Aunque las redes P2P y otros sistemas les han atribuido la ÚLTIL tarea de IDENTIFICAR REMOTAMENTE UN CONTENIDO, lo cierto es que la principal función de un HASH es AUTENTICAR LO RECIBIDO CONTRASTANDO QUE AL APLICAR EL MISMO CÁLCULO ÉSTE OFRECE EL MISMO RESUMEN ANUNCIADO REMOTAMENTE.
Es fundamental diferencia entre esas dos tareas del HASH: identificar remotamente y autenticar una vez recibido.
Obviamente no podemos comparar la simpleza de unas siglas con cálculos de resumen más complejos que ofrecen "resistencia a la colisiones". Actualmente existen algoritmos de resumen que son invulnerables, pero que con el paso del tiempo y a medida que la potencia de cálculo vaya aumentando, irán perdiendo esa resistencia.
La red eDonkey sustenta su IDENTIFICACIÓN REMOTA de archivos en base al obsoleto algoritmo de resumen MD4. Un algoritmo vulnerado hace años y que permite la existencia de archivos clones (distintos contenidos generan un mismo HASH MD4). Cuestión distinta es el proceso de descarga donde creo que cada CHUNK es comprobado mediante SHA1 (si no me equivoco).
Por tanto, en base a lo anterior, creo que afirmar que un HASH de archivo es un identificador único o inequívoco (como he leído muchas veces) es un grave error.
Agradezco me saquen de mi error si estoy equivocado en mis planteamientos, obviamente con argumentos técnicos que lo acrediten.
Saludos,
@indignado7777
This post has been edited by indignado7777: 05 January 2013 - 08:09 AM