Consulte la discusión de pregunta similar aquí .
En el contexto de preservación digital con horizonte de décadas , el archivo y su resumen del mensaje criptográfico se conservan como tal, inmutable, por décadas. Nadie puede cambiar los "registros de conservación originales". Mantener el original es importante.
Escenario hipotético
El repositorio de preservación se creó en el año de 2004 cuando SHA1 era un estándar bueno y confiable. Los curators del repositorio deciden agregar algo más que el resumen de SHA1 ... En lugar de solo a=SHA1(file)
también usan otros b
digest, por lo que la autenticación necesita a
y b
simultáneamente. La decisión fue difícil, hay muchas elecciones extrañas:
-
b=SHA1(concatenate(file,ID))
a segundo SHA1 obtenido con alguna estrategia como PBKDF2. -
b=otherHash(file)
, otra función hash como MD5 es más fuerte, solo para garantizar "una colisión difícil de encontrar". -
b=SHA1(file2)
donde archivo2 es un archivo comprimido o una "transformación de formato", preservando el contenido pero cambiando mucho el archivo. (consulte este ejemplo ). -
...
la pregunta
El punto es: el repositorio debe utilizar un estándar digest (en el momento de la creación), y el par de compendios de archivos debe ser inmutable durante décadas, de ninguna manera para cambiar a SHA2, SHA3, etc. en cada momento cuando un estándar sea reemplazado por uno más seguro.
PS: no es "la eternidad" es solo un problema en la escala de décadas.
Otro punto: es un repositorio oficial, pero nadie confía al 100% en los custodios (pueden cambiar documentos, por lo que la comparación de archivos de bit a bit no es una resolución final) ... boletín oficial publicado en 2004, con auditores curadores, solo los hashes y los nombres de archivos (solo podemos confiar en ello).
Entonces, la pregunta aquí es "¿Cuál es la mejor opción para este escenario?" . Nunca veo, pero tal vez hay alguna forma estandarizada.