Is there such thing as a keyed reversible hash function? This would be a hash function where computing H(x) is easy and requires no key, but computing x from H(x) is only feasible with the key.

Is this absolutely synonymous with digital signatures? Or is this something else and does such a thing exist? It feels like the inverse of public key cryptography: encryption is public, decryption (reversal of algorithm) is private.

  • 2
    $\begingroup$ This is public key encryption where you encrypt data with your public key and decrypt with your private key. $\endgroup$ – SEJPM Apr 3 '18 at 13:43
  • 1
    $\begingroup$ Actually, it sounds like public key encryption, if you bake the public key into the definition of $H$ $\endgroup$ – poncho Apr 3 '18 at 13:43

I think what you might be getting at is providing a signature that can only be verified by a particular party (i.e. who has access to the key). Encrypting any normal hash value with the public key of the intended recipient would effectively do that. The recipient could decrypt the hash with their private key and then re-hash the message to verify it. Others would be left unsure of what the additional data represented.

However, if you're thinking of "hashing" the full message in a way that only the intended recipient reverse it, that is pretty much what defines encryption. And, as mentioned in the comments, public key cryptography handles exactly this use-case.

Either way, public-key cryptography seems to be what you're looking for, it's just a matter of how you want to deploy it.

  • $\begingroup$ This is kind of what I was thinking of. I was just wondering if there was any specialized structure designed to have this and only this property. $\endgroup$ – Adam Ierymenko Apr 3 '18 at 14:17

Your description is the informal definition of a trapdoor one-way function. They exist. The most prominent example is RSA.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.