5

Suppose:

  • $H: \{0,1\}^{n} \rightarrow \{0,1\}^{n}$.
  • $H$ is bijective.
  • It is difficult to derive $x$ from $H(x)$.

Is this type of function possible? What would the strength of it be?

I realize that RSA and discrete logarithms can fulfill this, but I was thinking of using standard operators instead of those two. Other primitives could be acceptable.

Patriot
  • 3,162
  • 3
  • 20
  • 66
Melab
  • 4,178
  • 4
  • 24
  • 49

3 Answers3

2

On the practical side of things, if your hypothetical function is hard to invert, and assuming collisions are hard to find, why does it matter that it be bijective? For sufficiently large $n$ you can't construct a counterexample anyway, so a hash function may as well be bijective as far as anyone cares.

Otherwise, not exactly what you're asking for but you could try for a white-box block cipher implementation, basically just pick a block cipher, pick a random key, and embed the key in your implementation in such a way as to not be easily retrievable from the code. There are some papers describing techniques to do so, it might be worth taking a look.

Thomas
  • 7,568
  • 1
  • 32
  • 45
1

Conditions given are properties of all encryption algorithm if the encrypting key is constant. If mapping is bijective there will be no collision.

Uraguan
  • 171
  • 1
  • 7
-2

There are good practical examples and some discussion here (although these functions are not of cryptographic quality): https://stackoverflow.com/questions/664014/what-integer-hash-function-are-good-that-accepts-an-integer-hash-key