Existe-t-il une classe d'algorithmes de hachage, qu'ils soient théoriques ou pratiques, de sorte qu'un algorithme de la classe puisse être considéré comme «réflexif» selon une définition donnée ci-dessous:
- hash1 = algo1 ("texte d'entrée 1")
- hash1 = algo1 ("texte d'entrée 1" + hash1)
L'opérateur + peut être une concaténation ou toute autre opération spécifiée pour combiner la sortie (hachage1) dans l'entrée ("texte d'entrée 1") afin que l'algorithme (algo1) produise exactement le même résultat. c'est-à-dire collision sur entrée et entrée + sortie. L'opérateur + doit combiner l'intégralité des deux entrées et l'algo ne peut pas rejeter une partie de l'entrée.
L'algorithme doit produire une entropie élevée dans la sortie. Il peut, mais pas nécessairement, être cryptographiquement difficile de retourner la sortie à une ou aux deux entrées possibles.
Je ne suis pas mathématicien, mais une bonne réponse pourrait inclure une preuve de la raison pour laquelle une telle classe d'algorithmes ne peut pas exister. Ce n'est cependant pas une question abstraite. Je suis vraiment intéressé à utiliser un tel algorithme dans mon système, s'il en existe un.
Il s'agit d'un doublon d'une question qui a été publiée pour la première fois sur /programming/4823680/reflexive-hash