Czy istnieje klasa algorytmów mieszających, teoretycznych lub praktycznych, tak że algorytm w tej klasie można uznać za „zwrotny” zgodnie z definicją podaną poniżej:
- hash1 = algo1 („tekst wejściowy 1”)
- hash1 = algo1 („tekst wejściowy 1” + hash1)
Operator + może być konkatenacją lub dowolną inną określoną operacją, aby połączyć wynik (hash1) z powrotem w dane wejściowe („tekst wejściowy 1”), aby algorytm (algo1) dał dokładnie ten sam wynik. tj. kolizja na wejściu i wejściu + wyjściu. Operator + musi połączyć całość obu danych wejściowych, a algo nie może odrzucić części danych wejściowych.
Algorytm musi generować wysoką entropię na wyjściu. Może być, ale nie musi, być kryptograficznie trudne odwrócenie wyjścia z powrotem do jednego lub obu możliwych wejść.
Nie jestem matematykiem, ale dobra odpowiedź może zawierać dowód na to, że taka klasa algorytmów nie może istnieć. Nie jest to jednak abstrakcyjne pytanie. Naprawdę jestem zainteresowany wykorzystaniem takiego algorytmu w moim systemie, jeśli taki istnieje.
Jest to duplikat pytania, które zostało po raz pierwszy opublikowane na stronie /programming/4823680/reflexive-hash