¿Las funciones hash para firmas digitales deben ser resistentes a las preimágenes?
Entiendo que las funciones hash que se utilizan para aplicar hash a un documento o algunos datos antes de firmarlo, deben ser resistentes a las colisiones y a la segunda preimagen. De lo contrario, un adversario podría "buscar" dos documentos aleatorios con el mismo hash o un segundo documento, con el mismo hash que un documento determinado, y simplemente reemplazar el "documento original" con el "documento falso", porque entonces las firmas de los dos documentos también son iguales.
Sin embargo, no veo ninguna razón, ¿por qué una función hash para firmar documentos debe ser resistente a las preimágenes, o es de hecho una propiedad superflua?
Respuestas
Una función hash que no es resistente a preimagen tampoco es resistente a colisiones. Si escribo un mensaje aleatorio grande y aplico el algoritmo de preimagen, es muy poco probable que obtenga el mismo mensaje con el que comencé, encontrando así una colisión.
La resistencia a las colisiones es fundamental para un hash utilizado en una firma. Como puedes crear firmas falsificadas. Aunque necesita un poco más para forjar mensajes significativos, como explotar la colisión de estado interno para hacer que las extensiones colisionen y utilizar formatos como pdf o postscript.