¿Existe una clase de algoritmos hash, ya sean teóricos o prácticos, de modo que un algoritmo en la clase pueda considerarse 'reflexivo' de acuerdo con una definición dada a continuación?
- hash1 = algo1 ("texto de entrada 1")
- hash1 = algo1 ("texto de entrada 1" + hash1)
El operador + podría ser una concatenación o cualquier otra operación especificada para combinar la salida (hash1) nuevamente en la entrada ("texto de entrada 1") para que el algoritmo (algo1) produzca exactamente el mismo resultado. es decir, colisión en entrada y entrada + salida. El operador + debe combinar la totalidad de ambas entradas y el algoritmo no puede descartar parte de la entrada.
El algoritmo debe producir una alta entropía en la salida. Puede, pero no necesariamente, ser criptográficamente difícil revertir la salida a una o ambas entradas posibles.
No soy matemático, pero una buena respuesta podría incluir una prueba de por qué no puede existir tal clase de algoritmos. Sin embargo, esta no es una pregunta abstracta. Estoy realmente interesado en utilizar un algoritmo de este tipo en mi sistema, si es que existe.
Este es un duplicado de una pregunta que se publicó por primera vez en /programming/4823680/reflexive-hash
fuente
Respuestas:
Doy una construcción trivial que satisface el requisito. Lo proporciono simplemente para responder a la existencia de la función hash "reflexiva".
Como dije, esta es una construcción trivial. Se puede aplicar a cualquier función hash, práctica (como MD5, SHA-1, ...) o teórica.
fuente